From cfdff6a993999aae47c5fb6501db81dabf5fd954 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Wed, 17 Jan 2024 23:01:19 +0100 Subject: [PATCH] Set tests_directory to empty. --- .github/workflows/ApplicationTesting.yml | 44 +++++++++++++++--------- .github/workflows/UnitTesting.yml | 12 +++---- doc/coverage/index.rst | 2 +- doc/requirements.txt | 2 +- doc/unittests/index.rst | 2 +- pyproject.toml | 10 +++++- requirements.txt | 2 +- setup.py | 7 ++-- 8 files changed, 50 insertions(+), 31 deletions(-) diff --git a/.github/workflows/ApplicationTesting.yml b/.github/workflows/ApplicationTesting.yml index c4830c6..64b12a3 100644 --- a/.github/workflows/ApplicationTesting.yml +++ b/.github/workflows/ApplicationTesting.yml @@ -52,14 +52,14 @@ on: tests_directory: description: 'Path to the directory containing tests (test working directory).' required: false - default: 'tests' + default: '' type: string apptest_directory: description: 'Path to the directory containing application tests (relative to tests_directory).' required: false default: 'app' type: string - artifact: + apptest_xml_artifact: description: "Generate application test report with junitxml and upload results as an artifact." required: false default: '' @@ -202,29 +202,41 @@ jobs: - name: 🔧 Install wheel from artifact run: python -m pip install --disable-pip-version-check -U install/*.whl - - name: ☑ Run application tests (Windows) - if: matrix.system == 'windows' - run: | - $env:ENVIRONMENT_NAME = "${{ matrix.envname }}" - cd "${{ inputs.tests_directory || '.' }}" - $PYTEST_ARGS = if ("${{ inputs.artifact }}") { "--junitxml=TestReportSummary.xml" } else { "" } - python -m pytest -rA ${{ inputs.apptest_directory }} $PYTEST_ARGS --color=yes - - name: ☑ Run application tests (Ubuntu/macOS) if: matrix.system != 'windows' run: | export ENVIRONMENT_NAME="${{ matrix.envname }}" - ABSDIR=$(pwd) + cd "${{ inputs.tests_directory || '.' }}" - [ -n '${{ inputs.coverage_config }}' ] && PYCOV_ARGS="--cov-config=${ABSDIR}/${{ inputs.coverage_config }}" || unset PYCOV_ARGS - [ -n '${{ inputs.artifact }}' ] && PYTEST_ARGS='--junitxml=TestReportSummary.xml' || unset PYTEST_ARGS - python -m pytest -rA ${{ inputs.apptest_directory }} $PYTEST_ARGS --color=yes + [ -n '${{ inputs.apptest_xml_artifact }}' ] && PYTEST_ARGS='--junitxml=report/unit/TestReportSummary.xml' || unset PYTEST_ARGS + if [ -n '${{ inputs.coverage_config }}' ]; then + echo "coverage run --data-file=.coverage --rcfile=pyproject.toml -m pytest -raP $PYTEST_ARGS --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.apptest_directory }}" + coverage run --data-file=.coverage --rcfile=pyproject.toml -m pytest -raP $PYTEST_ARGS --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.apptest_directory }} + else + echo "python -m pytest -raP $PYTEST_ARGS --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.apptest_directory }}" + python -m pytest -raP $PYTEST_ARGS --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.apptest_directory }} + fi + + - name: ☑ Run application tests (Windows) + if: matrix.system == 'windows' + run: | + $env:ENVIRONMENT_NAME = "${{ matrix.envname }}" + + cd "${{ inputs.tests_directory || '.' }}" + $PYTEST_ARGS = if ("${{ inputs.apptest_xml_artifact }}") { "--junitxml=report/unit/TestReportSummary.xml" } else { "" } + if ("${{ inputs.coverage_config }}") { + Write-Host "coverage run --data-file=.coverage --rcfile=pyproject.toml -m pytest -raP --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.apptest_directory }}" + coverage run --data-file=.coverage --rcfile=pyproject.toml -m pytest -raP $PYTEST_ARGS --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.apptest_directory }} + } else { + Write-Host "python -m pytest -raP $PYTEST_ARGS --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.apptest_directory }}" + python -m pytest -raP $PYTEST_ARGS --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.apptest_directory }} + } - name: 📤 Upload 'TestReportSummary.xml' artifact - if: inputs.artifact != '' + if: inputs.apptest_xml_artifact != '' uses: actions/upload-artifact@v4 with: - name: ${{ inputs.artifact }}-${{ matrix.system }}-${{ matrix.python }} + name: ${{ inputs.apptest_xml_artifact }}-${{ matrix.system }}-${{ matrix.python }} path: ${{ inputs.tests_directory || '.' }}/TestReportSummary.xml if-no-files-found: error retention-days: 1 diff --git a/.github/workflows/UnitTesting.yml b/.github/workflows/UnitTesting.yml index 99eecf8..6ab964a 100644 --- a/.github/workflows/UnitTesting.yml +++ b/.github/workflows/UnitTesting.yml @@ -47,7 +47,7 @@ on: tests_directory: description: 'Path to the directory containing tests (test working directory).' required: false - default: 'tests' + default: '' type: string unittest_directory: description: 'Path to the directory containing unit tests (relative to tests_directory).' @@ -293,7 +293,7 @@ jobs: export ENVIRONMENT_NAME="${{ matrix.envname }}" export PYTHONPATH=$(pwd) - # cd "${{ inputs.tests_directory || '.' }}" + cd "${{ inputs.tests_directory || '.' }}" [ -n '${{ inputs.unittest_xml_artifact }}' ] && PYTEST_ARGS='--junitxml=report/unit/TestReportSummary.xml' || unset PYTEST_ARGS if [ -n '${{ inputs.coverage_config }}' ]; then echo "coverage run --data-file=.coverage --rcfile=pyproject.toml -m pytest -raP $PYTEST_ARGS --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.unittest_directory }}" @@ -309,7 +309,7 @@ jobs: $env:ENVIRONMENT_NAME = "${{ matrix.envname }}" $env:PYTHONPATH = (Get-Location).ToString() - # cd "${{ inputs.tests_directory || '.' }}" + cd "${{ inputs.tests_directory || '.' }}" $PYTEST_ARGS = if ("${{ inputs.unittest_xml_artifact }}") { "--junitxml=report/unit/TestReportSummary.xml" } else { "" } if ("${{ inputs.coverage_config }}") { Write-Host "coverage run --data-file=.coverage --rcfile=pyproject.toml -m pytest -raP --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.unittest_directory }}" @@ -319,15 +319,15 @@ jobs: python -m pytest -raP $PYTEST_ARGS --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.unittest_directory }} } - - name: Convert to XML format (Cobertura) + - name: Convert coverage to XML format (Cobertura) if: inputs.coverage_xml_artifact != '' run: coverage xml --data-file=.coverage - - name: Convert to JSON format + - name: Convert coverage to JSON format if: inputs.coverage_json_artifact != '' run: coverage json --data-file=.coverage - - name: Convert to HTML format + - name: Convert coverage to HTML format if: inputs.coverage_html_artifact != '' run: | coverage html --data-file=.coverage -d ${{ steps.getVariables.outputs.coverage_report_html_directory }} diff --git a/doc/coverage/index.rst b/doc/coverage/index.rst index 4d4c329..bad51b9 100644 --- a/doc/coverage/index.rst +++ b/doc/coverage/index.rst @@ -1,7 +1,7 @@ Code Coverage Report #################### -Code coverage report generated with ``pytest`` and ``coverage.py``. +Code coverage report generated with `pytest `__ and `Coverage.py `__. .. report:code-coverage:: :packageid: src diff --git a/doc/requirements.txt b/doc/requirements.txt index fbe0ef5..959de57 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1,6 +1,6 @@ -r ../requirements.txt -pyTooling >= 5.0.0, < 6.0 +pyTooling ~= 6.0 # Enforce latest version on ReadTheDocs sphinx >= 7.1, < 8.0 diff --git a/doc/unittests/index.rst b/doc/unittests/index.rst index ae372b8..8b840ee 100644 --- a/doc/unittests/index.rst +++ b/doc/unittests/index.rst @@ -1,7 +1,7 @@ Unittest Summary Report ####################### -Code coverage report generated with ``pytest``. +Unittest report generated with `pytest `__. .. report:unittest-summary:: :reportid: src diff --git a/pyproject.toml b/pyproject.toml index 34a2ea0..f250435 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ requires = [ "setuptools >= 69.0.0", "wheel >= 0.40.0", - "pyTooling >= 5.0.0" + "pyTooling ~= 6.0" ] build-backend = "setuptools.build_meta" @@ -30,6 +30,14 @@ filterwarnings = [ "error::PendingDeprecationWarning" ] +[tool.interrogate] +color = true +verbose = 1 # possible values: 0 (minimal output), 1 (-v), 2 (-vv) +fail-under = 59 +generate-badge = "." +badge-format = "png" +ignore-setters = true + [tool.coverage.run] branch = true relative_files = true diff --git a/requirements.txt b/requirements.txt index 4ad7e0b..3bea232 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -pyTooling >= 5.0.0, <6.0.0 +pyTooling ~= 6.0 diff --git a/setup.py b/setup.py index 1885b98..4c4e234 100644 --- a/setup.py +++ b/setup.py @@ -28,6 +28,7 @@ # SPDX-License-Identifier: Apache-2.0 # # ==================================================================================================================== # # +"""Package installer for 'pyDummy'.""" from setuptools import setup from pathlib import Path @@ -38,8 +39,7 @@ packageName = "pyDummy" packageDirectory = packageName packageInformationFile = Path(f"{packageDirectory}/__init__.py") -# setup(** -DescribePythonPackageHostedOnGitHub( +setup(**DescribePythonPackageHostedOnGitHub( packageName=packageName, description="pyDummy is a test package to verify GitHub actions for Python projects.", gitHubNamespace=gitHubNamespace, @@ -48,5 +48,4 @@ DescribePythonPackageHostedOnGitHub( dataFiles={ packageName: ["py.typed"] } -) -# ) +))