Skip to content

github: add tests dir to coverage source #258

github: add tests dir to coverage source

github: add tests dir to coverage source #258

Workflow file for this run

name: Code-Analysis
on:
push:
workflow_dispatch:
schedule:
- cron: '0 5 * * 1' # Every Monday at 5:00 AM UTC (7:00 AM CEST)
jobs:
pylint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install $(find . -name "requirement*" -type f -printf ' -r %p')
pip install pylint
- name: Analysing the code with pylint
run: |
pylint -d C0301,R0913,W1202 $(git ls-files '*.py') --ignored-modules "rdkit"
mypy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install mypy
mypy . || exit_code=$?
mypy --install-types --non-interactive
- name: Analysing the code with mypy
run: |
mypy --ignore-missing-imports --disallow-any-generics --disallow-untyped-defs --no-implicit-optional --disallow-incomplete-defs .
pydocstyle:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pydocstyle
- name: Analysing the code with pydocstyle
run: |
pydocstyle .
docsig:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install docsig
- name: Analysing the code with docsig
run: |
docsig --check-class-constructor --check-dunders --check-protected-class-methods --check-nested --check-overridden --check-protected .
black:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install black[jupyter]
- name: Analysing the code with black
run: |
black --check .
flake8:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8
- name: Analysing the code with flake8
run: |
flake8 --extend-ignore=D203,E203,E501,W503 .
interrogate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install interrogate
- name: Analysing the code with interrogate
run: |
interrogate --ignore-overloaded-functions -vv .
bandit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install bandit
- name: Analysing the code with bandit
run: |
bandit -r --skip=B404,B603,B602 .
isort:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install isort
- name: Analysing the code with isort
run: |
isort --profile black .
test_basis:
needs:
- pylint
- mypy
- pydocstyle
- docsig
- black
- flake8
- interrogate
- bandit
- isort
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install package
run: |
python -m pip install --upgrade pip
pip install coverage
pip install .
- name: Run unit-tests
run: |
# Run only the core test suite in the tests directory.
coverage run --source=molpipeline,tests -m unittest discover tests
# Create a coverage report. Fail if the coverage is below 85%. Exclude extra packages from the report.
coverage report --fail-under=85 --omit="*chemprop*","*/*chemprop*/*"
test_chemprop:
needs:
- test_basis
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.11
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install package
run: |
python -m pip install --upgrade pip
pip install coverage
pip install torch
pip install .[chemprop]
- name: Run unit-tests for chemprop
run: |
# Run only the chemprop test suite.
coverage run --source=molpipeline,tests -m unittest discover test_extras/test_chemprop
# Create a coverage report. Fail if the coverage is below 85%. Include only chemprop files in the report.
coverage report --fail-under=85 --include="*chemprop*","*/*chemprop*/*"
test_notebooks:
needs:
- test_basis
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.11
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install package
run: |
python -m pip install --upgrade pip
pip install .[notebooks]
- name: Run unit-tests for notebooks
run: |
python test_extras/test_notebooks/test_notebooks.py --continue-on-failure