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.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/ironic_python_agent/tests/unit/test_agent.py b/ironic_python_agent/tests/unit/test_agent.py
index 6c461ab4..74719b10 100644
--- a/ironic_python_agent/tests/unit/test_agent.py
+++ b/ironic_python_agent/tests/unit/test_agent.py
@@ -375,6 +375,51 @@ class TestBaseAgent(ironic_agent_base.IronicAgentTest):
self.assertEqual('1' * 128, self.agent.agent_token)
self.assertEqual('1' * 128, self.agent.api_client.agent_token)
+ @mock.patch(
+ 'ironic_python_agent.hardware_managers.cna._detect_cna_card',
+ mock.Mock())
+ @mock.patch.object(hardware, 'dispatch_to_managers', autospec=True)
+ @mock.patch.object(agent.IronicPythonAgent,
+ '_wait_for_interface', autospec=True)
+ @mock.patch('oslo_service.wsgi.Server', autospec=True)
+ @mock.patch.object(hardware, 'get_managers', autospec=True)
+ def test_run_listen_host_port(self, mock_get_managers, mock_wsgi,
+ mock_wait, mock_dispatch):
+ CONF.set_override('inspection_callback_url', '')
+
+ wsgi_server = mock_wsgi.return_value
+
+ def set_serve_api():
+ self.agent.serve_api = False
+
+ wsgi_server.start.side_effect = set_serve_api
+ self.agent.heartbeater = mock.Mock()
+ self.agent.listen_address = mock.Mock()
+ self.agent.listen_address.hostname = '2001:db8:dead:beef::cafe'
+ self.agent.listen_address.port = 9998
+ self.agent.api_client.lookup_node = mock.Mock()
+ self.agent.api_client.lookup_node.return_value = {
+ 'node': {
+ 'uuid': 'deadbeef-dabb-ad00-b105-f00d00bab10c'
+ },
+ 'config': {
+ 'heartbeat_timeout': 300
+ }
+ }
+
+ self.agent.run()
+
+ mock_wsgi.assert_called_once_with(CONF, 'ironic-python-agent',
+ app=self.agent.api,
+ host='2001:db8:dead:beef::cafe',
+ port=9998)
+ wsgi_server.start.assert_called_once_with()
+ mock_wait.assert_called_once_with(mock.ANY)
+ self.assertEqual([mock.call('list_hardware_info'),
+ mock.call('wait_for_disks')],
+ mock_dispatch.call_args_list)
+ self.agent.heartbeater.start.assert_called_once_with()
+
@mock.patch('eventlet.sleep', autospec=True)
@mock.patch(
'ironic_python_agent.hardware_managers.cna._detect_cna_card',