diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e1b9533..00979ac 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,6 @@ jobs: uses: prefix-dev/setup-pixi@v0.8.3 with: environments: dev - pixi-version: v0.42.1 - name: Ruff Format if: always() @@ -53,7 +52,19 @@ jobs: uses: prefix-dev/setup-pixi@v0.8.3 with: environments: dev - pixi-version: v0.42.1 - name: Run tests run: pixi run --environment dev test --show-capture=all -s -vv + + test-min-python: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install Pixi + uses: prefix-dev/setup-pixi@v0.8.3 + with: + environments: minpyver + + - name: Run tests with min python + run: pixi run --environment minpyver test-min-python -v \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index aa8d203..0d8e623 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,6 +10,11 @@ dependencies = ["argparse-dataclass>=2.0.0", "ConfigArgParse>=1.7", "packaging > name = "Johannes Koester" email = "johannes.koester@uni-due.de" +[tool.pytest.ini_options] +pythonpath = [ + "src" +] + [tool.coverage.run] omit = ["**/tests.py"] @@ -33,6 +38,7 @@ platforms = ["osx-arm64", "linux-64"] [tool.pixi.environments] dev = { features = ["dev"] } +minpyver = { features = ["minpyver"]} publish = { features = ["publish"] } [tool.pixi.feature.dev.dependencies] @@ -71,16 +77,27 @@ cmd = [ "--cov=snakemake_interface_common", "--cov-report=xml:coverage-report/coverage.xml", "--cov-report=term-missing", - "tests/tests.py" + "tests/tests.py", + "tests/test_snakemake_dependent.py" ] description = "Run tests and generate coverage report" +[tool.pixi.feature.minpyver.tasks.test-min-python] +cmd = [ + "pytest", + "tests/tests.py" +] + [tool.pixi.feature.dev.tasks] format = "ruff format src" lint = "ruff check" type-check = "mypy src/" qc = { depends-on = ["format", "lint", "type-check"] } +[tool.pixi.feature.minpyver.dependencies] +python = "3.8.*" +pytest = "*" + # Publish [tool.pixi.feature.publish.dependencies] twine = ">=6.1.0,<7" diff --git a/tests/test_snakemake_dependent.py b/tests/test_snakemake_dependent.py new file mode 100644 index 0000000..b51efae --- /dev/null +++ b/tests/test_snakemake_dependent.py @@ -0,0 +1,6 @@ +from snakemake_interface_common import at_least_snakemake_version + + +def test_snakemake_version(): + assert at_least_snakemake_version("8.1.0") + assert not at_least_snakemake_version("100.0.0") diff --git a/tests/tests.py b/tests/tests.py index c67c258..24a92a9 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -1,7 +1,6 @@ from dataclasses import dataclass import pytest -from snakemake_interface_common import at_least_snakemake_version from snakemake_interface_common.exceptions import ApiError, WorkflowError from snakemake_interface_common.plugin_registry.plugin import TaggedSettings from snakemake_interface_common.rules import RuleInterface @@ -70,9 +69,4 @@ def test_tagged_settings(): ts.register_settings(object()) ts.register_settings(object(), tag="foo") ts.get_settings(tag="foo") - ts.get_settings() - - -def test_snakemake_version(): - assert at_least_snakemake_version("8.1.0") - assert not at_least_snakemake_version("100.0.0") + ts.get_settings() \ No newline at end of file