summaryrefslogtreecommitdiff
path: root/ironic_python_agent/tests/unit/test_agent.py
diff options
context:
space:
mode:
Diffstat (limited to 'ironic_python_agent/tests/unit/test_agent.py')
-rw-r--r--ironic_python_agent/tests/unit/test_agent.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/ironic_python_agent/tests/unit/test_agent.py b/ironic_python_agent/tests/unit/test_agent.py
index b51e6851..cd3009ff 100644
--- a/ironic_python_agent/tests/unit/test_agent.py
+++ b/ironic_python_agent/tests/unit/test_agent.py
@@ -232,6 +232,37 @@ class TestBaseAgent(test_base.BaseTestCase):
self.agent.heartbeater.start.assert_called_once_with()
+ @mock.patch.object(time, 'sleep', autospec=True)
+ @mock.patch('wsgiref.simple_server.make_server', autospec=True)
+ @mock.patch.object(hardware.HardwareManager, 'list_hardware_info')
+ def test_run_with_sleep(self, mocked_list_hardware, wsgi_server_cls,
+ mocked_sleep):
+ CONF.set_override('inspection_callback_url', '', enforce_type=True)
+ wsgi_server = wsgi_server_cls.return_value
+ wsgi_server.start.side_effect = KeyboardInterrupt()
+
+ self.agent.hardware_initialization_delay = 10
+ self.agent.heartbeater = mock.Mock()
+ self.agent.api_client.lookup_node = mock.Mock()
+ self.agent.api_client.lookup_node.return_value = {
+ 'node': {
+ 'uuid': 'deadbeef-dabb-ad00-b105-f00d00bab10c'
+ },
+ 'heartbeat_timeout': 300
+ }
+ self.agent.run()
+
+ listen_addr = ('192.0.2.1', 9999)
+ wsgi_server_cls.assert_called_once_with(
+ listen_addr[0],
+ listen_addr[1],
+ self.agent.api,
+ server_class=simple_server.WSGIServer)
+ wsgi_server.serve_forever.assert_called_once_with()
+
+ self.agent.heartbeater.start.assert_called_once_with()
+ mocked_sleep.assert_called_once_with(10)
+
def test_async_command_success(self):
result = base.AsyncCommandResult('foo_command', {'fail': False},
foo_execute)