Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions gvm/protocols/gmp/_gmp.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 "
Expand Down
41 changes: 38 additions & 3 deletions tests/protocols/gmp/test_context_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -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


Expand Down Expand Up @@ -123,15 +124,49 @@ def test_select_gmpv226(self):
with self.gmp as gmp:
self.assertEqual(gmp.get_protocol_version(), (22, 6))
self.assertIsInstance(gmp, GMPv226)

def test_select_gmpv227(self):
self.connection.read.return_value(
b'<get_version_response status="200" status_text="OK">'
b"<version>22.6</version>"
b"<version>22.07</version>"
b"</get_version_response>"
)

with self.gmp as gmp:
self.assertEqual(gmp.get_protocol_version(), (22, 6))
self.assertIsInstance(gmp, GMPv226)
self.assertEqual(gmp.get_protocol_version(), (22, 7))
self.assertIsInstance(gmp, GMPv227)

self.connection.read.return_value(
b'<get_version_response status="200" status_text="OK">'
b"<version>22.7</version>"
b"</get_version_response>"
)

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'<get_version_response status="200" status_text="OK">'
b"<version>22.8</version>"
b"</get_version_response>"
)

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'<get_version_response status="200" status_text="OK">'
b"<version>22.20</version>"
b"</get_version_response>"
)

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(
Expand Down
Loading