Problem
The test suite uses example-based testing (specific inputs → specific outputs) which can miss edge cases. Property-based testing explores the input space automatically to find edge-case failures.
Solution
Add Hypothesis (well-established property-based testing framework, used by pytest and in academia/industry) and write property-based tests for:
sanitize_git_url() — URL redaction invariants
_get_backoff_delay() — monotonicity, bounds
Files
requirements.txt — add hypothesis>=6.0
.github/workflows/ci.yml — add hypothesis to pip install
tests/unit/test_scm.py — Hypothesis tests for sanitize_git_url
tests/unit/test_backoff_hypothesis.py — Hypothesis tests for backoff
Problem
The test suite uses example-based testing (specific inputs → specific outputs) which can miss edge cases. Property-based testing explores the input space automatically to find edge-case failures.
Solution
Add Hypothesis (well-established property-based testing framework, used by pytest and in academia/industry) and write property-based tests for:
sanitize_git_url()— URL redaction invariants_get_backoff_delay()— monotonicity, boundsFiles
requirements.txt— addhypothesis>=6.0.github/workflows/ci.yml— add hypothesis to pip installtests/unit/test_scm.py— Hypothesis tests for sanitize_git_urltests/unit/test_backoff_hypothesis.py— Hypothesis tests for backoff