diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 0000000000..627af3ca7e --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,50 @@ +name: Pytest and ruff + +on: + pull_request: + paths: + - .github/workflows/coverage.yml + - requirements*.txt + - "**.py" + push: + paths: + - .github/workflows/coverage.yml + - requirements*.txt + - "**.py" + workflow_dispatch: + +env: + TESTING: 1 + +permissions: # added using https://github.com/step-security/secure-repo + contents: read + +jobs: + coverage: + + runs-on: ubuntu-latest + + steps: + - name: Harden Runner + uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + with: + egress-policy: audit + + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0 + with: + python-version: "3.12" + cache: pip + - name: Install uv + run: | + pip install -U pip uv + - name: Install dependencies + run: | + uv pip install --system -e .[all] + uv pip install --system -r requirements-dev.txt + - name: Tests + run: | + coverage run -m pytest + coverage report -m --skip-covered --fail-under=95 + diff --git a/pyproject.toml b/pyproject.toml index feca19eff1..55f281133a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,7 +76,7 @@ docstring-code-format = false docstring-code-line-length = "dynamic" [tool.pytest.ini_options] -addopts = "-rf" +addopts = "-rf test/" testpaths = [ "test", ] diff --git a/requirements-dev.txt b/requirements-dev.txt index 5702ed94dc..ae98716e31 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -3,6 +3,7 @@ pycodestyle==2.11.1 pytest-datadir==1.5.0 pytest-mock==3.12.0 pytest==8.1.1 +coverage==7.6.1 requests-mock==1.11.0 ruff==0.5.5 testfixtures==8.1.0 \ No newline at end of file