From 0b09de7d1ebc085ec1ecee65abb3fb5757360153 Mon Sep 17 00:00:00 2001 From: Heiko Date: Fri, 19 Dec 2025 20:22:35 +0100 Subject: [PATCH] fix: remove duplicate IANA registry entry causing false update reports --- compliance_status.db | Bin 0 -> 606208 bytes docs/detailed-guide.md | 4 +-- src/sslysze_scan/data/iana_parse.json | 5 ---- tests/test_iana_update.py | 39 ++++++++++++++++++++++++++ 4 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 compliance_status.db diff --git a/compliance_status.db b/compliance_status.db new file mode 100644 index 0000000000000000000000000000000000000000..2b4e47a66ebdfa179bd8509ee653bf967520a355 GIT binary patch literal 606208 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 literal 0 HcmV?d00001 diff --git a/docs/detailed-guide.md b/docs/detailed-guide.md index 4b932fd..74fac1f 100644 --- a/docs/detailed-guide.md +++ b/docs/detailed-guide.md @@ -529,9 +529,9 @@ poetry run pytest tests/ -v - `tests/test_cli.py`: 3 CLI parsing tests - `tests/test_iana_validator.py`: 20 IANA validation tests - `tests/test_iana_parse.py`: 14 IANA parsing tests -- `tests/test_iana_update.py`: 13 IANA update tests +- `tests/test_iana_update.py`: 14 IANA update tests -**Total:** 63 tests +**Total:** 64 tests **Test database setup:** diff --git a/src/sslysze_scan/data/iana_parse.json b/src/sslysze_scan/data/iana_parse.json index f98d7ca..479cf55 100644 --- a/src/sslysze_scan/data/iana_parse.json +++ b/src/sslysze_scan/data/iana_parse.json @@ -24,11 +24,6 @@ "tls-parameters-5", "tls_content_types.csv", ["Value", "Description", "DTLS", "Recommended", "RFC/Draft"] - ], - [ - "tls-parameters-7", - "tls_content_types.csv", - ["Value", "Description", "DTLS", "Recommended", "RFC/Draft"] ] ], "https://www.iana.org/assignments/ikev2-parameters/ikev2-parameters.xml": [ diff --git a/tests/test_iana_update.py b/tests/test_iana_update.py index f53c0f4..02a21e2 100644 --- a/tests/test_iana_update.py +++ b/tests/test_iana_update.py @@ -283,3 +283,42 @@ class TestDiffCalculationEdgeCases: assert "0x03" in diff["added"] assert "0x02" in diff["deleted"] assert "0x01" in diff["modified"] + + +class TestConsecutiveUpdates: + """Tests for consecutive IANA updates.""" + + def test_consecutive_updates_show_no_changes(self, test_db_path: str) -> None: + """Test that second update with same data shows no changes.""" + xml_path = "tests/fixtures/iana_xml/tls-parameters-minimal.xml" + + with open(xml_path, encoding="utf-8") as f: + xml_content = f.read() + + conn = sqlite3.connect(test_db_path) + headers = ["Value", "Description", "DTLS", "Recommended", "RFC/Draft"] + + row_count_1, diff_1 = process_registry_with_validation( + xml_content, + "tls-parameters-4", + "iana_tls_cipher_suites", + headers, + conn, + skip_min_rows_check=True, + ) + + row_count_2, diff_2 = process_registry_with_validation( + xml_content, + "tls-parameters-4", + "iana_tls_cipher_suites", + headers, + conn, + skip_min_rows_check=True, + ) + + assert row_count_1 == row_count_2 + assert len(diff_2["added"]) == 0 + assert len(diff_2["deleted"]) == 0 + assert len(diff_2["modified"]) == 0 + + conn.close()