diff --git a/.coveragerc b/.coveragerc new file mode 100644 index 0000000..5c70a1a --- /dev/null +++ b/.coveragerc @@ -0,0 +1,2 @@ +[run] +omit = meshtastic/*_pb2.py,meshtastic/test.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0860cba..d363008 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: Run Python Tests +name: Linting and Tests on: push: branches: @@ -19,8 +19,9 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install markdown pdoc3 webencodings pyparsing twine autopep8 pylint pytest + pip install -r requirements.txt + pip install . - name: Run pylint run: pylint --exit-zero meshtastic - name: Run tests with pytest - run: pytest + run: pytest --cov=meshtastic diff --git a/.gitignore b/.gitignore index f414903..35fef00 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ log_* .eggs nanopb-0.4.4 .*swp +.coverage diff --git a/README.md b/README.md index 17a2f3f..ccde356 100644 --- a/README.md +++ b/README.md @@ -158,9 +158,15 @@ If you need to build a new release you'll need: ``` apt install pandoc -sudo pip3 install markdown pdoc3 webencodings pyparsing twine autopep8 pylint pytest +sudo pip3 install markdown pdoc3 webencodings pyparsing twine autopep8 pylint pytest pytest-cov ``` +For development, you will probably want to run: +``` +pip3 install -r requirements.txt +``` + + To lint, run: ``` pylint meshtastic @@ -176,3 +182,4 @@ Possible options for testing: * to run just unit tests: pytest -munit * to run just integration tests: pytest -mint * if you want to add another classification of tests, then look in pytest.ini +* if you want to see the unit test code coverage: pytest --cov=meshtastic diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e9e0f8f --- /dev/null +++ b/requirements.txt @@ -0,0 +1,56 @@ +astroid==2.9.0 +attrs==21.2.0 +autopep8==1.6.0 +bleach==4.1.0 +certifi==2021.10.8 +charset-normalizer==2.0.8 +colorama==0.4.4 +coverage==6.2 +docutils==0.18.1 +dotmap==1.3.25 +enum-compat==0.0.3 +idna==3.3 +importlib-metadata==4.8.2 +iniconfig==1.1.1 +isort==5.10.1 +keyring==23.4.0 +lazy-object-proxy==1.6.0 +Mako==1.1.6 +Markdown==3.3.6 +MarkupSafe==2.0.1 +mccabe==0.6.1 +packaging==21.3 +pdoc3==0.10.0 +pexpect==4.8.0 +pkginfo==1.8.1 +platformdirs==2.4.0 +pluggy==1.0.0 +protobuf==3.19.1 +ptyprocess==0.7.0 +py==1.11.0 +pycodestyle==2.8.0 +pygatt==4.0.5 +Pygments==2.10.0 +pylint==2.12.1 +pyparsing==3.0.6 +Pypubsub==4.0.3 +PyQRCode==1.2.1 +pyserial==3.5 +pytest==6.2.5 +pytest-cov==3.0.0 +readme-renderer==30.0 +requests==2.26.0 +requests-toolbelt==0.9.1 +rfc3986==1.5.0 +six==1.16.0 +tabulate==0.8.9 +timeago==1.0.15 +toml==0.10.2 +tomli==1.2.2 +tqdm==4.62.3 +twine==3.7.0 +typing_extensions==4.0.1 +urllib3==1.26.7 +webencodings==0.5.1 +wrapt==1.13.3 +zipp==3.6.0