Enable MyPy, PyLint #169
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: tests | |
on: | |
push: | |
paths-ignore: | |
- "README.md" | |
- "LICENSE" | |
- ".gitignore" | |
branches: | |
- main | |
pull_request: | |
paths-ignore: | |
- "README.md" | |
- "LICENSE" | |
- ".gitignore" | |
branches: | |
- main | |
env: | |
PYTHON_VERSION: "3.10" | |
NODE_VERSION: "20" | |
MODULE_NAME: clairvoyance | |
MIN_TEST_COV: 0 | |
SERVER: http://localhost:4000 | |
permissions: | |
contents: read | |
jobs: | |
unit-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Python ${{ env.PYTHON_VERSION }} and resolve Poetry dependencies | |
uses: ./.github/actions/poetry-setup | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Run tests | |
run: | | |
source .venv/bin/activate | |
pytest --cov=$MODULE_NAME --cov-report=xml --cov-fail-under=$MIN_TEST_COV tests | |
system-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Python ${{ env.PYTHON_VERSION }} and resolve Poetry dependencies | |
uses: ./.github/actions/poetry-setup | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Setup NodeJS ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: "npm" | |
cache-dependency-path: tests/apollo-server/ | |
- name: Install deps and run server | |
run: | | |
cd tests/apollo-server/ | |
npm ci | |
node src/index.js & | |
- name: Wait for server | |
run: | | |
for i in {0..10}; do | |
echo "Sleep for 1 second ..." | |
sleep 1 | |
if curl -s -o /dev/null "$SERVER"; then | |
echo "$SERVER returned HTTP response!" | |
break | |
fi | |
if [ $i -eq 10 ]; then | |
echo "Server did not respond after 10 seconds!" | |
exit 1 | |
fi | |
done | |
- name: Test with pytest | |
run: | | |
source .venv/bin/activate | |
python -m unittest tests/system.py | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Python ${{ env.PYTHON_VERSION }} and resolve Poetry dependencies | |
uses: ./.github/actions/poetry-setup | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Run lint | |
# A few checks are skipped for now because the code can't pass them | |
# TODO: reactivate them | |
run: | | |
source .venv/bin/activate | |
isort -m 9 --line-length 160 $MODULE_NAME tests --gitignore --check-only | |
# pylint $MODULE_NAME tests | |
docformatter --wrap-summaries 160 --wrap-descriptions 160 -cr $MODULE_NAME tests | |
black --check $MODULE_NAME tests | |
mypy -V | |
mypy $MODULE_NAME tests |