From f9bed82e7abeb3afe611e7a494c088f833b23797 Mon Sep 17 00:00:00 2001 From: Shreya Malviya Date: Wed, 27 Jul 2022 15:45:55 +0530 Subject: [PATCH 1/5] Common: Add docstring to ICMPScanConfiguration dataclass --- .../common/agent_configuration/agent_sub_configurations.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/monkey/common/agent_configuration/agent_sub_configurations.py b/monkey/common/agent_configuration/agent_sub_configurations.py index 188b9d1bb..e531d1f30 100644 --- a/monkey/common/agent_configuration/agent_sub_configurations.py +++ b/monkey/common/agent_configuration/agent_sub_configurations.py @@ -41,6 +41,13 @@ class ScanTargetConfiguration: @dataclass(frozen=True) class ICMPScanConfiguration: + """ + A configuration for ICMP scanning + + Attributes: + :param timeout: Maximum time that the agent should wait for a response from the target + """ + timeout: float From aff97886d400b0752d900c32d589dae4ca3f6a0f Mon Sep 17 00:00:00 2001 From: Shreya Malviya Date: Wed, 27 Jul 2022 15:56:07 +0530 Subject: [PATCH 2/5] Common: Reword ICMPScanConfiguration docstring --- monkey/common/agent_configuration/agent_sub_configurations.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monkey/common/agent_configuration/agent_sub_configurations.py b/monkey/common/agent_configuration/agent_sub_configurations.py index e531d1f30..398afdcc0 100644 --- a/monkey/common/agent_configuration/agent_sub_configurations.py +++ b/monkey/common/agent_configuration/agent_sub_configurations.py @@ -45,7 +45,7 @@ class ICMPScanConfiguration: A configuration for ICMP scanning Attributes: - :param timeout: Maximum time that the agent should wait for a response from the target + :param timeout: Maximum time to wait for a response from the target """ timeout: float From af015c788c6b134a9b34aa27233ab04787aecbdc Mon Sep 17 00:00:00 2001 From: Shreya Malviya Date: Wed, 27 Jul 2022 16:44:30 +0530 Subject: [PATCH 3/5] Common: Specify timeout is in seconds in ICMPScanConfiguration docstring --- monkey/common/agent_configuration/agent_sub_configurations.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monkey/common/agent_configuration/agent_sub_configurations.py b/monkey/common/agent_configuration/agent_sub_configurations.py index 398afdcc0..d318423f9 100644 --- a/monkey/common/agent_configuration/agent_sub_configurations.py +++ b/monkey/common/agent_configuration/agent_sub_configurations.py @@ -45,7 +45,7 @@ class ICMPScanConfiguration: A configuration for ICMP scanning Attributes: - :param timeout: Maximum time to wait for a response from the target + :param timeout: Maximum time in seconds to wait for a response from the target """ timeout: float From d8bccde2766019c39d002a1c69d52c651aaed5ff Mon Sep 17 00:00:00 2001 From: Shreya Malviya Date: Wed, 27 Jul 2022 16:50:46 +0530 Subject: [PATCH 4/5] Common: Add validation that timeout >= 0 in ICMPScanConfigurationSchema --- .../agent_configuration/agent_sub_configuration_schemas.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monkey/common/agent_configuration/agent_sub_configuration_schemas.py b/monkey/common/agent_configuration/agent_sub_configuration_schemas.py index 3c46cd0fe..8ea68df40 100644 --- a/monkey/common/agent_configuration/agent_sub_configuration_schemas.py +++ b/monkey/common/agent_configuration/agent_sub_configuration_schemas.py @@ -85,7 +85,7 @@ class ScanTargetConfigurationSchema(Schema): class ICMPScanConfigurationSchema(Schema): - timeout = fields.Float() + timeout = fields.Float(validate=validate.Range(min=0)) @post_load def _make_icmp_scan_configuration(self, data, **kwargs): From 65ce50cac15171a353dcb1d35c7a4538a173412c Mon Sep 17 00:00:00 2001 From: Shreya Malviya Date: Wed, 27 Jul 2022 16:51:17 +0530 Subject: [PATCH 5/5] UT: Add test for ICMPScanConfigurationSchema timeout validation --- .../common/configuration/test_agent_configuration.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/monkey/tests/unit_tests/common/configuration/test_agent_configuration.py b/monkey/tests/unit_tests/common/configuration/test_agent_configuration.py index d7e4bebd4..f1dfa43a0 100644 --- a/monkey/tests/unit_tests/common/configuration/test_agent_configuration.py +++ b/monkey/tests/unit_tests/common/configuration/test_agent_configuration.py @@ -126,6 +126,16 @@ def test_icmp_scan_configuration_schema(): assert config.timeout == TIMEOUT +def test_icmp_scan_configuration_schema__negative_timeout(): + schema = ICMPScanConfigurationSchema() + + negative_timeout_configuration = ICMP_CONFIGURATION.copy() + negative_timeout_configuration["timeout"] = -1 + + with pytest.raises(ValidationError): + schema.load(negative_timeout_configuration) + + def test_tcp_scan_configuration_schema(): schema = TCPScanConfigurationSchema()