From e0cfa4a12f65eb0b30f5191c4489a993c713058a Mon Sep 17 00:00:00 2001 From: Wojciech <62173407+WojtekMs@users.noreply.github.com> Date: Thu, 30 Nov 2023 10:53:55 +0100 Subject: [PATCH] Add CI to run UTs & linting This CI workflow will start unit tests and check code formatting when creating PR towards master branch or after merging PR towards master branch --- .github/workflows/tests.yml | 30 +++++++++++++++++++ src/banker/parser/html_transactions_parser.py | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..7462a51 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,30 @@ +name: Run unit tests + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + tests: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.10 + uses: actions/setup-python@v2 + with: + python-version: "3.10" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install .[dev] + pip install flake8 + - name: Lint with flake8 + run: | + flake8 src tests --count --select=E9,F63,F7,F82 --show-source --statistics --exit-zero + flake8 src tests --exclude tests/banker/parser/test_data --count --max-complexity=10 --max-line-length=127 --statistics --exit-zero + - name: Test with pytest + run: | + pytest tests diff --git a/src/banker/parser/html_transactions_parser.py b/src/banker/parser/html_transactions_parser.py index 910c2ed..0d73b31 100644 --- a/src/banker/parser/html_transactions_parser.py +++ b/src/banker/parser/html_transactions_parser.py @@ -16,7 +16,7 @@ def __parse_transactions_table(self, content: str) -> pandas.DataFrame | None: tables = pandas.read_html(io.StringIO(content), attrs={'id': 'lista_transakcji'}) return tables[0] except ValueError: - self.logger.warning(f"Invalid HTML literal, transactions table is missing") + self.logger.warning("Invalid HTML literal, transactions table is missing") return None def parse_transactions(self, content: str) -> list[Transaction]: