mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-28 15:53:00 +00:00
25713a486a
test_file's parametrize list was filtered with `sys.argv[1] in os.path.basename(fn)`, reading the raw process argv instead of a pytest-native option. Under a bare `pytest` invocation sys.argv[1] is pytest's own first CLI token, never a match, so the 138-fixture EXPRESS rule corpus in test/fixtures/rules collapses to an empty parametrize and pytest reports it as a single skipped test rather than an error. Under CI's actual invocation (pytest -p no:pytest-blender -n $NPROCS test ...) sys.argv[1] is "-p", which happens to substring-match 47 of the 138 fixtures, so CI has been silently running a coincidental 34% slice of the corpus with no signal anything was wrong. Replaced the module-level list comprehension with a pytest_generate_tests hook plus a --rule CLI option (added via a new test/conftest.py). This runs the full corpus by default under any pytest invocation, still allows filtering to one rule for local debugging via --rule, and no longer collides with pytest's own argv. Verified all 138 fixtures collect and pass under the fixed harness (63 fail- fixtures each raise a violation, 75 pass- fixtures raise none). Generated with the assistance of an AI coding tool.