def test_loop_and_filtering(self): self.set_responses([ [ self.make_host('panda-001'), self.make_host('panda-002', want_imaging_server=False) ], [ self.make_host('panda-003'), self.make_host('panda-004', want_relay_info=False) ], [ self.make_host('panda-005'), self.make_host('panda-006', want_mac_address=False) ], ]) hosts = inventorysync.get_devices('https://inv', 'filter', 'me', 'pass', None, verbose=True) self.assertEqual(hosts, [ {'inventory_id': 90, 'relay_info': 'relay7', 'name': 'panda-001', 'imaging_server': 'img9', 'mac_address': '6a3d0c52ae9b', 'fqdn': 'panda-001.vlan.dc.mozilla.com', 'hardware_type': 'PandaBoard', 'hardware_model': 'ES'}, # panda-002 was skipped {'inventory_id': 52, 'relay_info': 'relay4', 'name': 'panda-003', 'imaging_server': 'img9', 'mac_address': 'aec31326594a', 'fqdn': 'panda-003.vlan.dc.mozilla.com', 'hardware_type': 'PandaBoard', 'hardware_model': 'ES'}, # panda-004 was skipped {'inventory_id': 6, 'relay_info': 'relay9', 'name': 'panda-005', 'imaging_server': 'img3', 'mac_address': 'c19b00f9644b', 'fqdn': 'panda-005.vlan.dc.mozilla.com', 'hardware_type': 'PandaBoard', 'hardware_model': 'ES'} # panda-006 was skipped ]) self.assertEqual(self.requests_get.call_args_list, [ mock.call('https://inv/en-US/tasty/v3/system/?limit=100&filter', auth=('me', 'pass')), mock.call('https://inv/path1', auth=('me', 'pass')), mock.call('https://inv/path2', auth=('me', 'pass')), ])
def test_loop_and_filtering(self): self.set_inventory_response([ self.make_host('panda-001'), self.make_host('panda-002', want_imaging_server=False), self.make_host('panda-003'), self.make_host('panda-004', want_relay_info=False), self.make_host('panda-005'), self.make_host('panda-006', want_mac_address=False), ]) hosts = inventorysync.get_devices('https://inv', 'filter', 'me', 'pass', None, verbose=True) self.assertEqual(sorted(hosts), sorted([ {'inventory_id': 90, 'relay_info': 'relay7', 'name': 'panda-001', 'imaging_server': 'img9', 'mac_address': '6a3d0c52ae9b', 'fqdn': 'panda-001.vlan.dc.mozilla.com', 'hardware_type': 'PandaBoard', 'hardware_model': 'ES'}, # panda-002 was skipped {'inventory_id': 52, 'relay_info': 'relay4', 'name': 'panda-003', 'imaging_server': 'img9', 'mac_address': 'aec31326594a', 'fqdn': 'panda-003.vlan.dc.mozilla.com', 'hardware_type': 'PandaBoard', 'hardware_model': 'ES'}, # panda-004 was skipped {'inventory_id': 6, 'relay_info': 'relay9', 'name': 'panda-005', 'imaging_server': 'img3', 'mac_address': 'c19b00f9644b', 'fqdn': 'panda-005.vlan.dc.mozilla.com', 'hardware_type': 'PandaBoard', 'hardware_model': 'ES'} # panda-006 was skipped ])) self.assertEqual(self.requests_get.call_args_list, [ mock.call('https://inv/en-US/bulk_action/export/?q=filter', auth=('me', 'pass')), mock.call('https://inv/en-US/core/api/v1_core/systemstatus/1/', auth=('me', 'pass')), mock.call('https://inv/en-US/core/api/v1_core/servermodel/529/', auth=('me', 'pass')) ])
def test_loop_and_filtering(self): self.set_inventory_response([ self.make_host('panda-001'), self.make_host('panda-002', want_imaging_server=False), self.make_host('panda-003'), self.make_host('panda-004', want_relay_info=False), self.make_host('panda-005'), self.make_host('panda-006', want_mac_address=False), ]) hosts = inventorysync.get_devices('https://inv', 'filter', 'me', 'pass', None, verbose=True) self.assertEqual( sorted(hosts), sorted([ { 'inventory_id': 90, 'relay_info': 'relay7', 'name': 'panda-001', 'imaging_server': 'img9', 'mac_address': '6a3d0c52ae9b', 'fqdn': 'panda-001.vlan.dc.mozilla.com', 'hardware_type': 'PandaBoard', 'hardware_model': 'ES' }, # panda-002 was skipped { 'inventory_id': 52, 'relay_info': 'relay4', 'name': 'panda-003', 'imaging_server': 'img9', 'mac_address': 'aec31326594a', 'fqdn': 'panda-003.vlan.dc.mozilla.com', 'hardware_type': 'PandaBoard', 'hardware_model': 'ES' }, # panda-004 was skipped { 'inventory_id': 6, 'relay_info': 'relay9', 'name': 'panda-005', 'imaging_server': 'img3', 'mac_address': 'c19b00f9644b', 'fqdn': 'panda-005.vlan.dc.mozilla.com', 'hardware_type': 'PandaBoard', 'hardware_model': 'ES' } # panda-006 was skipped ])) self.assertEqual(self.requests_get.call_args_list, [ mock.call('https://inv/en-US/bulk_action/export/?q=filter', auth=('me', 'pass')), mock.call('https://inv/en-US/core/api/v1_core/systemstatus/1/', auth=('me', 'pass')), mock.call('https://inv/en-US/core/api/v1_core/servermodel/529/', auth=('me', 'pass')) ])
def test_re_filter(self): self.set_inventory_response([ self.make_host('panda-001'), self.make_host('panda-002'), ]) hosts = inventorysync.get_devices('https://inv', 'filter', 'me', 'pass', '.*9') self.assertEqual( hosts, [ # panda-001 was skipped, since 'img9' matches '.*9' { 'inventory_id': 97, 'relay_info': 'relay9', 'name': 'panda-002', 'imaging_server': 'img1', 'mac_address': '86a1c8ce6ea2', 'fqdn': 'panda-002.vlan.dc.mozilla.com', 'hardware_type': 'PandaBoard', 'hardware_model': 'ES' }, ]) self.assertEqual(self.requests_get.call_args_list, [ mock.call('https://inv/en-US/bulk_action/export/?q=filter', auth=('me', 'pass')), mock.call('https://inv/en-US/core/api/v1_core/systemstatus/1/', auth=('me', 'pass')), mock.call('https://inv/en-US/core/api/v1_core/servermodel/529/', auth=('me', 'pass')), ])
def test_re_filter(self, get): self.set_responses([ [ self.make_host('panda-001'), self.make_host('panda-002') ], ]) hosts = inventorysync.get_devices('https://inv', 'filter', 'me', 'pass', '.*9') self.assertEqual(hosts, [ # panda-001 was skipped, since 'img9' matches '.*9' {'inventory_id': 97, 'relay_info': 'relay9', 'name': 'panda-002', 'imaging_server': 'img1', 'mac_address': '86a1c8ce6ea2', 'fqdn': 'panda-002.vlan.dc.mozilla.com'}, ]) self.assertEqual(requests.get.call_args_list, [ mock.call('https://inv/en-US/tasty/v3/system/?limit=100&filter', auth=('me', 'pass')), ])
def test_one_response(self): self.set_responses([ [ self.make_host('panda-001'), self.make_host('panda-002') ], ]) hosts = inventorysync.get_devices('https://inv', 'filter', 'me', 'pass', None) self.assertEqual(hosts, [ {'inventory_id': 90, 'relay_info': 'relay7', 'name': 'panda-001', 'imaging_server': 'img9', 'mac_address': '6a3d0c52ae9b', 'fqdn': 'panda-001.vlan.dc.mozilla.com', 'hardware_type': 'PandaBoard', 'hardware_model': 'ES'}, {'inventory_id': 97, 'relay_info': 'relay9', 'name': 'panda-002', 'imaging_server': 'img1', 'mac_address': '86a1c8ce6ea2', 'fqdn': 'panda-002.vlan.dc.mozilla.com', 'hardware_type': 'PandaBoard', 'hardware_model': 'ES'}, ]) self.assertEqual(self.requests_get.call_args_list, [ mock.call('https://inv/en-US/tasty/v3/system/?limit=100&filter', auth=('me', 'pass')), ])
def test_re_filter(self): self.set_inventory_response([ self.make_host('panda-001'), self.make_host('panda-002'), ]) hosts = inventorysync.get_devices('https://inv', 'filter', 'me', 'pass', '.*9') self.assertEqual(hosts, [ # panda-001 was skipped, since 'img9' matches '.*9' {'inventory_id': 97, 'relay_info': 'relay9', 'name': 'panda-002', 'imaging_server': 'img1', 'mac_address': '86a1c8ce6ea2', 'fqdn': 'panda-002.vlan.dc.mozilla.com', 'hardware_type': 'PandaBoard', 'hardware_model': 'ES'}, ]) self.assertEqual(self.requests_get.call_args_list, [ mock.call('https://inv/en-US/bulk_action/export/?q=filter', auth=('me', 'pass')), mock.call('https://inv/en-US/core/api/v1_core/systemstatus/1/', auth=('me', 'pass')), mock.call('https://inv/en-US/core/api/v1_core/servermodel/529/', auth=('me', 'pass')), ])
def test_get_devices_requests_error(self): self.set_responses([[]], status_code=500) self.assertRaises(RuntimeError, lambda : inventorysync.get_devices('https://inv', 'filter', 'me', 'pass', None))
def test_get_devices_requests_error(self): self.set_inventory_response([], status_code=500) self.assertRaises( RuntimeError, lambda: inventorysync.get_devices( 'https://inv', 'filter', 'me', 'pass', None))