diff --git a/gvm/protocols/gmp/_gmp224.py b/gvm/protocols/gmp/_gmp224.py index bc263e863..b3e21cd8c 100644 --- a/gvm/protocols/gmp/_gmp224.py +++ b/gvm/protocols/gmp/_gmp224.py @@ -3925,14 +3925,13 @@ def modify_task( ) ) - def move_task( - self, task_id: EntityID, *, slave_id: EntityID | None = None - ) -> T: + def move_task(self, task_id: EntityID, *, slave_id: EntityID = "") -> T: """Move an existing task to another GMP slave scanner or the master Args: task_id: UUID of the task to be moved - slave_id: UUID of the sensor to reassign the task to, empty for master. + slave_id: UUID of the sensor to reassign the task to. Defaults to + an empty string, which selects the master. """ return self._send_request_and_transform_response( Tasks.move_task(task_id, slave_id=slave_id) diff --git a/gvm/protocols/gmp/_gmpnext.py b/gvm/protocols/gmp/_gmpnext.py index e5316957c..cd92aaeef 100644 --- a/gvm/protocols/gmp/_gmpnext.py +++ b/gvm/protocols/gmp/_gmpnext.py @@ -957,14 +957,13 @@ def modify_task( ) ) - def move_task( - self, task_id: EntityID, *, slave_id: EntityID | None = None - ) -> T: + def move_task(self, task_id: EntityID, *, slave_id: EntityID = "") -> T: """Move an existing task to another GMP slave scanner or the master Args: task_id: UUID of the task to be moved - slave_id: UUID of the sensor to reassign the task to, empty for master. + slave_id: UUID of the sensor to reassign the task to. Defaults to + an empty string, which selects the master. """ return self._send_request_and_transform_response( Tasks.move_task( diff --git a/gvm/protocols/gmp/requests/next/_tasks.py b/gvm/protocols/gmp/requests/next/_tasks.py index 7b1158e38..23ca32b40 100644 --- a/gvm/protocols/gmp/requests/next/_tasks.py +++ b/gvm/protocols/gmp/requests/next/_tasks.py @@ -695,24 +695,27 @@ def modify_task( @classmethod def move_task( - cls, task_id: EntityID, *, slave_id: EntityID | None = None + cls, task_id: EntityID, *, slave_id: EntityID = "" ) -> Request: """Move an existing task to another GMP slave scanner or the master Args: task_id: UUID of the task to be moved - slave_id: UUID of the sensor to reassign the task to, empty for master. + slave_id: UUID of the sensor to reassign the task to. Defaults to + an empty string, which selects the master. """ if not task_id: raise RequiredArgument( function=cls.move_task.__name__, argument="task_id" ) + if slave_id is None: + raise RequiredArgument( + function=cls.move_task.__name__, argument="slave_id" + ) cmd = XmlCommand("move_task") cmd.set_attribute("task_id", str(task_id)) - - if slave_id is not None: - cmd.set_attribute("slave_id", str(slave_id)) + cmd.set_attribute("slave_id", str(slave_id)) return cmd diff --git a/gvm/protocols/gmp/requests/v224/_tasks.py b/gvm/protocols/gmp/requests/v224/_tasks.py index f6056cc90..8323db713 100644 --- a/gvm/protocols/gmp/requests/v224/_tasks.py +++ b/gvm/protocols/gmp/requests/v224/_tasks.py @@ -354,24 +354,27 @@ def modify_task( @classmethod def move_task( - cls, task_id: EntityID, *, slave_id: EntityID | None = None + cls, task_id: EntityID, *, slave_id: EntityID = "" ) -> Request: """Move an existing task to another GMP slave scanner or the master Args: task_id: UUID of the task to be moved - slave_id: UUID of the sensor to reassign the task to, empty for master. + slave_id: UUID of the sensor to reassign the task to. Defaults to + an empty string, which selects the master. """ if not task_id: raise RequiredArgument( function=cls.move_task.__name__, argument="task_id" ) + if slave_id is None: + raise RequiredArgument( + function=cls.move_task.__name__, argument="slave_id" + ) cmd = XmlCommand("move_task") cmd.set_attribute("task_id", str(task_id)) - - if slave_id is not None: - cmd.set_attribute("slave_id", str(slave_id)) + cmd.set_attribute("slave_id", str(slave_id)) return cmd diff --git a/tests/protocols/gmp/requests/v224/test_tasks.py b/tests/protocols/gmp/requests/v224/test_tasks.py index afe519964..2f785a9d0 100644 --- a/tests/protocols/gmp/requests/v224/test_tasks.py +++ b/tests/protocols/gmp/requests/v224/test_tasks.py @@ -664,7 +664,14 @@ def test_move_task(self): request = Tasks().move_task("task_id") self.assertEqual( bytes(request), - b'', + b'', + ) + + def test_move_task_to_master(self): + request = Tasks().move_task("task_id", slave_id="") + self.assertEqual( + bytes(request), + b'', ) def test_move_task_with_slave_id(self): @@ -681,6 +688,10 @@ def test_move_task_missing_task_id(self): with self.assertRaises(RequiredArgument): Tasks().move_task(None) + def test_move_task_none_slave_id(self): + with self.assertRaises(RequiredArgument): + Tasks().move_task("task_id", slave_id=None) + def test_start_task(self): request = Tasks().start_task("task_id") self.assertEqual( diff --git a/tests/protocols/gmpnext/entities/tasks/test_move_task.py b/tests/protocols/gmpnext/entities/tasks/test_move_task.py index efc58af50..e690b7ecb 100644 --- a/tests/protocols/gmpnext/entities/tasks/test_move_task.py +++ b/tests/protocols/gmpnext/entities/tasks/test_move_task.py @@ -10,7 +10,16 @@ class GmpMoveTaskTestMixin: def test_move_task(self): self.gmp.move_task("a1") - self.connection.send.has_been_called_with(b'') + self.connection.send.has_been_called_with( + b'' + ) + + def test_move_task_to_master(self): + self.gmp.move_task("a1", slave_id="") + + self.connection.send.has_been_called_with( + b'' + ) def test_move_task_to_slave(self): self.gmp.move_task("a1", slave_id="s1") @@ -25,3 +34,7 @@ def test_missing_id(self): with self.assertRaises(GvmError): self.gmp.move_task("") + + def test_none_slave_id(self): + with self.assertRaises(GvmError): + self.gmp.move_task("a1", slave_id=None) diff --git a/tests/protocols/gmpv224/entities/tasks/test_move_task.py b/tests/protocols/gmpv224/entities/tasks/test_move_task.py index 6898abbc6..3c0095f64 100644 --- a/tests/protocols/gmpv224/entities/tasks/test_move_task.py +++ b/tests/protocols/gmpv224/entities/tasks/test_move_task.py @@ -10,7 +10,16 @@ class GmpMoveTaskTestMixin: def test_move_task(self): self.gmp.move_task("a1") - self.connection.send.has_been_called_with(b'') + self.connection.send.has_been_called_with( + b'' + ) + + def test_move_task_to_master(self): + self.gmp.move_task("a1", slave_id="") + + self.connection.send.has_been_called_with( + b'' + ) def test_move_task_to_slave(self): self.gmp.move_task("a1", slave_id="s1") @@ -25,3 +34,7 @@ def test_missing_id(self): with self.assertRaises(GvmError): self.gmp.move_task("") + + def test_none_slave_id(self): + with self.assertRaises(GvmError): + self.gmp.move_task("a1", slave_id=None)