| """Phase 206 coverage aggregation tests.""" |
| import json |
| import pytest |
|
|
|
|
| def test_phase_206_baseline_metrics(): |
| """Verify Phase 206 baseline metrics from coverage_phase_206_baseline.json.""" |
| with open('coverage_phase_206_baseline.json', 'r') as f: |
| baseline = json.load(f) |
|
|
| |
| assert baseline['current_coverage']['overall_percent'] >= 74.0 |
| assert baseline['target']['percent'] == 80.0 |
| assert baseline['target']['gap_percentage_points'] > 5.0 |
|
|
| |
| assert baseline['strategy']['approach'] == 'expansion' |
| assert len(baseline['target_files']) >= 10 |
|
|
| |
| assert len(baseline['wave_2_targets']) >= 3 |
| assert len(baseline['wave_3_targets']) >= 3 |
|
|
|
|
| def test_coverage_files_count_increases(): |
| """Verify that adding new tests increases the number of files in coverage report.""" |
| with open('coverage.json', 'r') as f: |
| coverage = json.load(f) |
|
|
| current_file_count = len(coverage['files']) |
|
|
| |
| |
| assert current_file_count >= 2, f"Expected at least 2 files, got {current_file_count}" |
|
|
| |
| with open('coverage_file_count.txt', 'w') as f: |
| f.write(str(current_file_count)) |
|
|
|
|
| @pytest.mark.skip("Run in Wave 4 only") |
| def test_phase_206_final_coverage_80_percent(): |
| """Verify Phase 206 achieves 80% overall coverage.""" |
| with open('coverage.json', 'r') as f: |
| coverage = json.load(f) |
|
|
| overall = coverage['totals'] |
| assert overall['percent_covered'] >= 80.0, f"Coverage target not met: {overall['percent_covered']:.2f}%" |
|
|
| |
| assert len(coverage['files']) >= 10, f"Expected at least 10 files under test, got {len(coverage['files'])}" |
|
|