test: Phase 5 — advanced improvements

1. pytest-timeout (30s, thread-based) added to pyproject.toml
   - Prevents hangs in CI
   - timeout_method='thread' for clean cancellation

2. hypothesis added for property-based edge case discovery
   - tests/common/test_hypothesis_tests.py: 5 tests
   - Fermi: random Z, A, W — checks stability, monotonicity
   - Phase space: random W0, W — checks threshold/endpoint properties
   - Hypothesis already found real bugs:
     * Fermi monotonicity fails for Z < 10 (expected — finite-size dominates)
     * Phase space negative when W > W0 (test constrains W < W0)

3. pytest.mark.requires_ensdf marker added to TestPaceENSDFIntegration
   - Replaces bare @pytest.mark.skipif with documented marker
   - Allows running only ENSDF tests: pytest -m requires_ensdf

4. Updated test-migration-todo.md: Phase 5 complete

Final state: 256 tests passing (250 regular + 6 hypothesis + 6 skipped ENSDF)
This commit is contained in:
2026-05-15 16:48:46 +03:00
parent c96fb6175a
commit 76d183b913
3 changed files with 109 additions and 0 deletions
+2
View File
@@ -58,6 +58,8 @@ markers = [
"slow: Tests that take >1s to run",
"requires_ensdf: Tests requiring paceENSDF package",
]
timeout = 30
timeout_method = "thread"
[tool.ruff]
line-length = 88