Merge "Add missing test for NodeInfo.create_ports"

This commit is contained in:
Jenkins 2017-04-11 13:31:19 +00:00 committed by Gerrit Code Review
commit 5c28ca6584
1 changed files with 45 additions and 0 deletions

View File

@ -721,6 +721,51 @@ class TestUpdate(test_base.NodeTest):
self.ironic.port.delete.assert_called_once_with('0')
self.assertEqual(['mac1'], list(self.node_info.ports()))
@mock.patch.object(node_cache.LOG, 'warning', autospec=True)
def test_create_ports(self, mock_warn):
ports = [
'mac2',
{'mac': 'mac3', 'client_id': '42'},
{'mac': 'mac4'}
]
self.node_info.create_ports(ports)
self.assertEqual({'mac0', 'mac1', 'mac2', 'mac3', 'mac4'},
set(self.node_info.ports()))
create_calls = [
mock.call(node_uuid=self.uuid, address='mac2', extra={}),
mock.call(node_uuid=self.uuid, address='mac3',
extra={'client-id': '42'}),
mock.call(node_uuid=self.uuid, address='mac4', extra={}),
]
self.assertEqual(create_calls, self.ironic.port.create.call_args_list)
# No conflicts - cache was not cleared - no calls to port.list
self.assertFalse(mock_warn.called)
self.assertFalse(self.ironic.port.list.called)
@mock.patch.object(node_cache.LOG, 'warning', autospec=True)
def test_create_ports_with_conflicts(self, mock_warn):
self.ironic.port.create.return_value = mock.sentinel.port
ports = [
'mac',
{'mac': 'mac0'},
'mac1',
{'mac': 'mac2', 'client_id': '42'},
]
self.node_info.create_ports(ports)
create_calls = [
mock.call(node_uuid=self.uuid, address='mac', extra={}),
mock.call(node_uuid=self.uuid, address='mac2',
extra={'client-id': '42'}),
]
self.assertEqual(create_calls, self.ironic.port.create.call_args_list)
mock_warn.assert_called_once_with(mock.ANY, ['mac0', 'mac1'],
node_info=self.node_info)
class TestNodeCacheGetByPath(test_base.NodeTest):
def setUp(self):