From 784a15be62471d911c004fc28a9904699c6e6633 Mon Sep 17 00:00:00 2001 From: Michael Wiegand Date: Wed, 11 Jun 2025 12:19:55 +0200 Subject: [PATCH 1/3] Fix: Correctly determine GMP 22.7 as supported protocol --- gvm/protocols/gmp/_gmp.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gvm/protocols/gmp/_gmp.py b/gvm/protocols/gmp/_gmp.py index 10ce179f..80d11ad0 100644 --- a/gvm/protocols/gmp/_gmp.py +++ b/gvm/protocols/gmp/_gmp.py @@ -91,9 +91,11 @@ def determine_supported_gmp(self) -> SUPPORTED_GMP_VERSIONS: gmp_class = GMPv224 elif major_version == 22 and minor_version == 5: gmp_class = GMPv225 - elif major_version == 22 and minor_version >= 6: + elif major_version == 22 and minor_version == 6: gmp_class = GMPv226 - if minor_version > 6: + elif major_version == 22 and minor_version >= 7: + gmp_class = GMPv227 + if minor_version > 7: warnings.warn( "Remote manager daemon uses a newer GMP version than " f"supported by python-gvm {__version__}. Please update to " From 76ee16685587672d19f6c9e6d28e7d349a25890f Mon Sep 17 00:00:00 2001 From: Michael Wiegand Date: Wed, 11 Jun 2025 13:24:14 +0200 Subject: [PATCH 2/3] Tests: Add tests for current and future GMP versions Add tests to make sure the detected protocol version and instance is correct for GMP 22.7. Also add tests for the expected next protocol version (`22.8`) and a possible far future version (`22.20`), which should adequately fall back to the latest current version. --- tests/protocols/gmp/test_context_manager.py | 44 +++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tests/protocols/gmp/test_context_manager.py b/tests/protocols/gmp/test_context_manager.py index 07b39a56..5f595ebf 100644 --- a/tests/protocols/gmp/test_context_manager.py +++ b/tests/protocols/gmp/test_context_manager.py @@ -11,6 +11,7 @@ from gvm.protocols.gmp._gmp224 import GMPv224 from gvm.protocols.gmp._gmp225 import GMPv225 from gvm.protocols.gmp._gmp226 import GMPv226 +from gvm.protocols.gmp._gmp227 import GMPv227 from tests.protocols import GmpTestCase @@ -133,6 +134,49 @@ def test_select_gmpv226(self): self.assertEqual(gmp.get_protocol_version(), (22, 6)) self.assertIsInstance(gmp, GMPv226) + def test_select_gmpv227(self): + self.connection.read.return_value( + b'' + b"22.07" + b"" + ) + + with self.gmp as gmp: + self.assertEqual(gmp.get_protocol_version(), (22, 7)) + self.assertIsInstance(gmp, GMPv227) + + self.connection.read.return_value( + b'' + b"22.7" + b"" + ) + + with self.gmp as gmp: + self.assertEqual(gmp.get_protocol_version(), (22, 7)) + self.assertIsInstance(gmp, GMPv227) + + def test_next_version_fallback(self): + self.connection.read.return_value( + b'' + b"22.8" + b"" + ) + + with self.gmp as gmp: + self.assertEqual(gmp.get_protocol_version(), (22, 7)) + self.assertIsInstance(gmp, GMPv227) + + def test_newer_version_fallback(self): + self.connection.read.return_value( + b'' + b"22.20" + b"" + ) + + with self.gmp as gmp: + self.assertEqual(gmp.get_protocol_version(), (22, 7)) + self.assertIsInstance(gmp, GMPv227) + def test_unknown_protocol(self): self.connection.read.return_value( b'' From 1db977c84526c0da645343985db3826414800fa0 Mon Sep 17 00:00:00 2001 From: Michael Wiegand Date: Wed, 11 Jun 2025 13:29:32 +0200 Subject: [PATCH 3/3] Fix: Remove duplicate test for '22.6' --- tests/protocols/gmp/test_context_manager.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/tests/protocols/gmp/test_context_manager.py b/tests/protocols/gmp/test_context_manager.py index 5f595ebf..af0877ee 100644 --- a/tests/protocols/gmp/test_context_manager.py +++ b/tests/protocols/gmp/test_context_manager.py @@ -121,15 +121,6 @@ def test_select_gmpv226(self): b"" ) - with self.gmp as gmp: - self.assertEqual(gmp.get_protocol_version(), (22, 6)) - self.assertIsInstance(gmp, GMPv226) - self.connection.read.return_value( - b'' - b"22.6" - b"" - ) - with self.gmp as gmp: self.assertEqual(gmp.get_protocol_version(), (22, 6)) self.assertIsInstance(gmp, GMPv226)