diff options
| author | Zuul <zuul@review.opendev.org> | 2020-07-06 18:08:14 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2020-07-06 18:08:14 +0000 |
| commit | 2e9620a2c072e27972bbb68d6f491ab71d181f42 (patch) | |
| tree | 7f4d7e4c2802761a53e03bf6f42d999e8cf94482 /ironic_python_agent/tests | |
| parent | 621872561087695ec8bb5f93d00384b691b0c366 (diff) | |
| parent | c76b8b2c217d57680baec977b374e821304198f9 (diff) | |
| download | ironic-python-agent-2e9620a2c072e27972bbb68d6f491ab71d181f42.tar.gz | |
Merge "Limit Inspection->Lookup->Heartbeat lag"
Diffstat (limited to 'ironic_python_agent/tests')
| -rw-r--r-- | ironic_python_agent/tests/unit/base.py | 2 | ||||
| -rw-r--r-- | ironic_python_agent/tests/unit/test_agent.py | 4 | ||||
| -rw-r--r-- | ironic_python_agent/tests/unit/test_hardware.py | 19 | ||||
| -rw-r--r-- | ironic_python_agent/tests/unit/test_inspector.py | 14 |
4 files changed, 37 insertions, 2 deletions
diff --git a/ironic_python_agent/tests/unit/base.py b/ironic_python_agent/tests/unit/base.py index 94196985..7d14821f 100644 --- a/ironic_python_agent/tests/unit/base.py +++ b/ironic_python_agent/tests/unit/base.py @@ -24,6 +24,7 @@ from oslo_config import fixture as config_fixture from oslotest import base as test_base from ironic_python_agent.extensions import base as ext_base +from ironic_python_agent import hardware from ironic_python_agent import utils CONF = cfg.CONF @@ -60,6 +61,7 @@ class IronicAgentTest(test_base.BaseTestCase): self.patch(utils, 'execute', do_not_call) ext_base._EXT_MANAGER = None + hardware._CACHED_HW_INFO = None def _set_config(self): self.cfg_fixture = self.useFixture(config_fixture.Config(CONF)) diff --git a/ironic_python_agent/tests/unit/test_agent.py b/ironic_python_agent/tests/unit/test_agent.py index bb691377..6c461ab4 100644 --- a/ironic_python_agent/tests/unit/test_agent.py +++ b/ironic_python_agent/tests/unit/test_agent.py @@ -517,7 +517,7 @@ class TestBaseAgent(ironic_agent_base.IronicAgentTest): mock_inspector.assert_called_once_with() - self.assertFalse(mock_wait.called) + self.assertTrue(mock_wait.called) self.assertFalse(mock_dispatch.called) @mock.patch('ironic_lib.mdns.get_endpoint', autospec=True) @@ -572,7 +572,7 @@ class TestBaseAgent(ironic_agent_base.IronicAgentTest): wsgi_server.start.assert_called_once_with() self.assertFalse(mock_inspector.called) - self.assertFalse(mock_wait.called) + self.assertTrue(mock_wait.called) self.assertFalse(mock_dispatch.called) @mock.patch.object(time, 'time', autospec=True) diff --git a/ironic_python_agent/tests/unit/test_hardware.py b/ironic_python_agent/tests/unit/test_hardware.py index 29a46939..367c82dc 100644 --- a/ironic_python_agent/tests/unit/test_hardware.py +++ b/ironic_python_agent/tests/unit/test_hardware.py @@ -4356,3 +4356,22 @@ class TestVersions(base.IronicAgentTest): self.assertRaises(errors.VersionMismatch, hardware.check_versions, {'not_specific': '1'}) + + +@mock.patch('ironic_python_agent.hardware.dispatch_to_managers', + autospec=True) +class TestListHardwareInfo(base.IronicAgentTest): + + def test_caching(self, mock_dispatch): + fake_info = {'I am': 'hardware'} + mock_dispatch.return_value = fake_info + + self.assertEqual(fake_info, hardware.list_hardware_info()) + self.assertEqual(fake_info, hardware.list_hardware_info()) + mock_dispatch.assert_called_once_with('list_hardware_info') + + self.assertEqual(fake_info, + hardware.list_hardware_info(use_cache=False)) + self.assertEqual(fake_info, hardware.list_hardware_info()) + mock_dispatch.assert_called_with('list_hardware_info') + self.assertEqual(2, mock_dispatch.call_count) diff --git a/ironic_python_agent/tests/unit/test_inspector.py b/ironic_python_agent/tests/unit/test_inspector.py index cac0edf1..4c464185 100644 --- a/ironic_python_agent/tests/unit/test_inspector.py +++ b/ironic_python_agent/tests/unit/test_inspector.py @@ -252,6 +252,20 @@ class TestCollectDefault(BaseDiscoverTest): mock_dispatch.assert_called_once_with('list_hardware_info') mock_wait_for_dhcp.assert_called_once_with() + def test_cache_hardware_info(self, mock_dispatch, mock_wait_for_dhcp, + mock_get_mgrs): + mgrs = [{'name': 'extra', 'version': '1.42'}, + {'name': 'generic', 'version': '1.1'}] + mock_dispatch.return_value = self.inventory + mock_get_mgrs.return_value = [ + mock.Mock(**{'get_version.return_value': item}) for item in mgrs + ] + + inspector.collect_default(self.data, self.failures) + inspector.collect_default(self.data, self.failures) + # Hardware is cached, so only one call is made + mock_dispatch.assert_called_once_with('list_hardware_info') + def test_no_root_disk(self, mock_dispatch, mock_wait_for_dhcp, mock_get_mgrs): mgrs = [{'name': 'extra', 'version': '1.42'}, |
