Skip to main content

pytest-level

Mark test cases with a level, then de-select tests with a given level or higher.

When giving a teaching/practice assignment with pre-written tests, either all tests can be given at once (leaving students overwhelmed and unsure which failures should be fixed next), or piece-wise (in individual files -- which becomes a mess for larger projects).

With this plugin, tests for a teaching/practice assignment can be given in a single file. Students are then told to run with --level 1, fix the few red tests, then go to --level 2, etc. Unlike with keywords, all the lower-level tests will still be run: --level 2 will run both level(1) and level(2) tests.

Installation

In a Python environment (e.g. venv), do:

python -m pip install pytest-level

Usage

Mark tests with a numeric level marker:

@pytest.mark.level(1)
def test_basic_math():
    assert 1 + 1 == 2

@pytest.mark.level(2)
def test_intermediate_math():
    assert 10 / 2 == 5

@pytest.mark.level(3)
def test_complicated_math():
    assert 10 ** 3 == 1000

Then, run pytest with --level:

python -m pytest --level 2

This will deselect tests of a higher level.

Without --level, all tests are run.

Licence

The code is available under a MIT license. May it serve you well.

Release files for pytest-level 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for pytest-level 0.1.3
File Interpreter ABI Platform
pytest_level-0.1.3-py3-none-any.whl Python 3 none any Details

Release files / pytest_level-0.1.3-py3-none-any.whl

Download URL pytest_level-0.1.3-py3-none-any.whl
Size 3.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e68badf6cf1ac467f8f4e81ef645e6bd419d9ca29c6d377c824f5d9974083f39
BLAKE2b-256 checksum
How to use checksums
c33c654ba33381db61f9b5e459915ea5e106da452790f1d23252dcf6c056eed1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.2 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.5

Release history Release notifications | RSS feed

This release

0.1.3 This release

1 release file

0.1.2

1 release file

0.1.1

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page