Conversation
Codecov Report❌ Patch coverage is 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR adds pytest markers for all external program dependencies used in QCEngine's test suite. Previously, tests used @using("program") as a decorator and/or has_program() checks inside test bodies; now there's a clear distinction between @uusing("program") (decorator form) and using("program") (inline form for marks= in pytest.param). Both forms apply three marks: a skipif mark, an addon label, and a program-specific label. This enables selecting tests by program via pytest -m openmm.
Changes:
- Refactored
using()to return a tuple of marks for inline use, and introduceduusing()as the decorator form; updated all test files accordingly - Converted plain tuple test params in
_canonical_methodslists topytest.param(...)withmarks=using(...), replacing runtimehas_program()skip checks - Registered all program markers in
pyproject.tomland enabled--strict-markersin CI
Reviewed changes
Copilot reviewed 26 out of 26 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
qcengine/testing.py |
Core refactor: split using into _using/uusing/using, added has_program aliases for classic-dftd3/classic-gcp, retired psi4 version sub-marks |
pyproject.toml |
Registered all program names as pytest markers, added addon marker |
.github/workflows/CI.yml |
Added --strict-markers and --durations flags to pytest invocations |
docs/source/changelog.rst |
Added v0.50.0rc3 changelog entry for the new marker feature |
qcengine/tests/test_harness_canonical.py |
Converted _canonical_methods to pytest.param with marks, removed has_program checks |
qcengine/tests/test_procedures.py |
Switched from @using to @uusing, added marks to params |
qcengine/tests/test_qcmanybody.py |
Switched from @using to @uusing |
qcengine/tests/test_cli.py |
Switched from @using to @uusing |
qcengine/tests/test_mdi.py |
Switched from @using to @uusing |
qcengine/programs/tests/test_programs.py |
Switched from @using to @uusing, updated psi4 version marks |
qcengine/programs/tests/test_dftd3_mp2d.py |
Updated dftd3→classic-dftd3 marks, removed psi4 version checks |
qcengine/programs/tests/test_standard_suite.py |
Updated psi4_mp2qcsk/psi4_derqcsk→psi4 marks |
qcengine/programs/tests/test_canonical_config.py |
Converted to pytest.param with marks, removed has_program checks |
qcengine/programs/tests/test_canonical_fields.py |
Removed has_program check (now handled by param marks) |
qcengine/programs/tests/test_alignment.py |
Updated psi4_derqcsk→psi4 marks |
qcengine/programs/tests/test_turbomole.py |
Switched to @uusing, added *using() spread for combined marks |
| Various other test files | Mechanical @using→@uusing conversions |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
(see changelog and CI summary below)
Description
Changelog description
Status