You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#291 added XTCE 1.3 support, which means the test suite now carries expectations for two versions of the standard. A partial split landed in that PR — version-specific tests were moved out of test_definitions.py and test_validation.py into modules with a stated remit:
That stops the interleaving, but leaves the mechanical half of the scheme undone.
Remaining work
A version-parametrized fixture in tests/conftest.py with params=SUPPORTED_XTCE_VERSIONS and ids xtce12 / xtce13, so behavior that should be identical across versions is asserted once and runs per version, rather than being written out twice or tested against only one.
xtce12 / xtce13 markers registered in pyproject.toml, applied via module-level pytestmark, so -m xtce13 selects the 1.3 surface.
Version-specific test data under tests/test_data/xtce_1_3/, moving test_xtce_1_3.xml and test_xtce_1_3_only_features.xml there. Note this interacts with the drift-guard test added in Add support for XTCE 1.3 alongside XTCE 1.2 #291 (test_xtce_1_3_fixture_tracks_the_1_2_fixture), which pins test_xtce_1_3.xml to being a pure version-swap of test_xtce.xml — the guard should move with the fixture.
Keep test_encodings.py version-neutral. It is currently close to that, but the encoding-level tests for the 1.3 delimiter-only string form should be checked against the boundary.
Consider whether test_version_conversion.py and test_version_validation.py should merge once the fixture exists, since some of what separates them today is which module the moved tests came from.
The PR was already ~8k lines across 23 files, and none of the other review findings depended on this. Doing the suite-wide mechanical change separately keeps both diffs reviewable.
Follow-up from review of #291.
#291 added XTCE 1.3 support, which means the test suite now carries expectations for two versions of the standard. A partial split landed in that PR — version-specific tests were moved out of
test_definitions.pyandtest_validation.pyinto modules with a stated remit:tests/unit/test_xtce/test_versions.pytests/unit/test_xtce/test_xtce_1_3_features.pytests/unit/test_xtce/test_version_conversion.pytests/unit/test_xtce/test_version_validation.pyThat stops the interleaving, but leaves the mechanical half of the scheme undone.
Remaining work
tests/conftest.pywithparams=SUPPORTED_XTCE_VERSIONSand idsxtce12/xtce13, so behavior that should be identical across versions is asserted once and runs per version, rather than being written out twice or tested against only one.xtce12/xtce13markers registered inpyproject.toml, applied via module-levelpytestmark, so-m xtce13selects the 1.3 surface.tests/test_data/xtce_1_3/, movingtest_xtce_1_3.xmlandtest_xtce_1_3_only_features.xmlthere. Note this interacts with the drift-guard test added in Add support for XTCE 1.3 alongside XTCE 1.2 #291 (test_xtce_1_3_fixture_tracks_the_1_2_fixture), which pinstest_xtce_1_3.xmlto being a pure version-swap oftest_xtce.xml— the guard should move with the fixture.test_encodings.pyversion-neutral. It is currently close to that, but the encoding-level tests for the 1.3 delimiter-only string form should be checked against the boundary.test_version_conversion.pyandtest_version_validation.pyshould merge once the fixture exists, since some of what separates them today is which module the moved tests came from.Why not in #291
The PR was already ~8k lines across 23 files, and none of the other review findings depended on this. Doing the suite-wide mechanical change separately keeps both diffs reviewable.
🤖 Generated with Claude Code