add tests for speed_changes

This commit is contained in:
Andrew Pimenov 2026-08-09 16:14:00 +03:00
parent be99c19cfd
commit b3971375c2
2 changed files with 50 additions and 0 deletions

1
.gitignore vendored
View file

@ -27,3 +27,4 @@ build/
# netsleuth runtime caches
.cache/
.coverage

View file

@ -81,6 +81,55 @@ def test_speed_deltas_cover_throughput_and_the_bufferbloat_grade(before, after):
assert "Speedtest method" not in changes
def test_speed_of_a_report_against_itself_is_empty(before):
assert speed_changes(before, before) == []
def test_speed_changes_with_missing_sections():
assert speed_changes({}, {}) == []
def test_speed_changes_all_fields():
before_report = {
"speed": {
"data": {
"method": "fast",
"download_mbps": 100.0,
"upload_mbps": 50.0,
"bufferbloat_down_ms": 10.0,
"bufferbloat_up_ms": 5.0,
"bufferbloat_grade": "A",
}
}
}
after_report = {
"speed": {
"data": {
"method": "cloudflare",
"download_mbps": 200.0,
"upload_mbps": 100.0,
"bufferbloat_down_ms": 20.0,
"bufferbloat_up_ms": 15.0,
"bufferbloat_grade": "C",
}
}
}
changes = by_label(speed_changes(before_report, after_report))
assert changes["Speedtest method"].before == "fast"
assert changes["Speedtest method"].after == "cloudflare"
assert changes["Speedtest method"].delta is None
assert changes["Download Mbps"].delta == pytest.approx(100.0)
assert changes["Upload Mbps"].delta == pytest.approx(50.0)
assert changes["Bufferbloat down ms"].delta == pytest.approx(10.0)
assert changes["Bufferbloat up ms"].delta == pytest.approx(10.0)
assert changes["Bufferbloat grade"].before == "A"
assert changes["Bufferbloat grade"].after == "C"
assert changes["Bufferbloat grade"].delta is None
def test_findings_are_split_into_new_and_resolved(before, after):
new, resolved = finding_changes(before, after)
assert [f["id"] for f in new] == ["speed.bufferbloat_down"]