From 954d5cc57656f37e0cb27c3ab339789d08a142e4 Mon Sep 17 00:00:00 2001 From: Robert Latta <robert.latta@geant.org> Date: Fri, 24 Apr 2020 08:06:24 +0000 Subject: [PATCH] moved tests --- test/test_ims.py | 85 ++----------------------------------------- test/test_ims_data.py | 85 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 82 deletions(-) create mode 100644 test/test_ims_data.py diff --git a/test/test_ims.py b/test/test_ims.py index c9501dfe..0434f50d 100644 --- a/test/test_ims.py +++ b/test/test_ims.py @@ -1,8 +1,9 @@ -import json +import os +import re import inventory_provider from inventory_provider.db.ims import InventoryStatus -from inventory_provider.db.ims_data import lookup_lg_routers, lookup_pop_info +from inventory_provider.tasks.ims_worker import export_data_for_otrs class MockResponse: @@ -149,83 +150,3 @@ def test_ims_class_cache(mocker): ds.get_entity_by_id( 'Node', 4567, navigation_properties=[1, 2, 3, 4, 5], use_cache=True) assert mock_get.call_count == 4 - - -def test_lookup_lg_routers(mocker): - - ims = mocker.patch('inventory_provider.db.ims.IMS') - with open('test/data/ims_lg_data.json') as data: - ims.return_value.get_filtered_entities.return_value = json.load(data) - ims.return_value.get_entity_by_id.return_value = { - 'Name': 'pop name', - 'Longitude': 'long', - 'Latitude': 'lat', - 'City': { - 'Name': 'city name', - 'Country': { - 'Name': 'country name', - 'Abbreviation': 'country code' - } - }, - 'SiteAliases': [ - { - 'AliasName': 'abbr' - } - ] - } - - ds = inventory_provider.db.ims.IMS( - 'dummy_base', 'dmmy_username', 'dummy_password') - - res = list(lookup_lg_routers(ds)) - - ds.get_filtered_entities.assert_called_once_with( - 'EquipmentDefinition', - 'Name like mx', - inventory_provider.db.ims.EQUIP_DEF_PROPERTIES['Nodes']) - - assert ds.get_entity_by_id.call_count == 35 - assert len(res) == 35 - - pop = { - 'name': 'pop name', - 'city': 'city name', - 'country': 'country name', - 'country code': 'country code', - 'abbreviation': 'abbr', - 'longitude': 'long', - 'latitude': 'lat' - } - assert res[0] == { - 'equipment name': 'MX3.LAB.OFFICE.GEANT.NET', - 'type': 'CORE', - 'pop': pop - } - - -def test_lookup_pop_info(mocker): - - ims = mocker.patch('inventory_provider.db.ims.IMS') - with open('test/data/ims_pop_info_mx1_pra_cz.json') as data: - resp_data = json.load(data) - ims.return_value.get_entity_by_name.return_value = resp_data['router'] - ims.return_value.get_entity_by_id.return_value = resp_data['site'] - - ds = inventory_provider.db.ims.IMS( - 'dummy_base', 'dmmy_username', 'dummy_password') - res = lookup_pop_info(ds, 'dummy_host') - ds.get_entity_by_name.assert_called_once_with('Node', 'dummy_host') - ds.get_entity_by_id.assert_called_once_with( - 'Site', 445312, [2, 64, 256], True) - assert res == { - 'equipment-name': 'MX1.PRA.CZ', - 'status': InventoryStatus.IN_SERVICE.name, - 'pop': { - 'name': 'PRAGUE', - 'city': 'PRAGUE', - 'country': 'CZECH REPUBLIC', - 'abbreviation': 'PRA', - 'longitude': 14.39166667, - 'latitude': 50.10166667, - } - } diff --git a/test/test_ims_data.py b/test/test_ims_data.py new file mode 100644 index 00000000..1a5608ea --- /dev/null +++ b/test/test_ims_data.py @@ -0,0 +1,85 @@ +import json + +import inventory_provider +from inventory_provider.db.ims import InventoryStatus +from inventory_provider.db.ims_data import lookup_pop_info, lookup_lg_routers + + +def test_lookup_lg_routers(mocker): + + ims = mocker.patch('inventory_provider.db.ims.IMS') + with open('test/data/ims_lg_data.json') as data: + ims.return_value.get_filtered_entities.return_value = json.load(data) + ims.return_value.get_entity_by_id.return_value = { + 'Name': 'pop name', + 'Longitude': 'long', + 'Latitude': 'lat', + 'City': { + 'Name': 'city name', + 'Country': { + 'Name': 'country name', + 'Abbreviation': 'country code' + } + }, + 'SiteAliases': [ + { + 'AliasName': 'abbr' + } + ] + } + + ds = inventory_provider.db.ims.IMS( + 'dummy_base', 'dmmy_username', 'dummy_password') + + res = list(lookup_lg_routers(ds)) + + ds.get_filtered_entities.assert_called_once_with( + 'EquipmentDefinition', + 'Name like mx', + inventory_provider.db.ims.EQUIP_DEF_PROPERTIES['Nodes']) + + assert ds.get_entity_by_id.call_count == 35 + assert len(res) == 35 + + pop = { + 'name': 'pop name', + 'city': 'city name', + 'country': 'country name', + 'country code': 'country code', + 'abbreviation': 'abbr', + 'longitude': 'long', + 'latitude': 'lat' + } + assert res[0] == { + 'equipment name': 'MX3.LAB.OFFICE.GEANT.NET', + 'type': 'CORE', + 'pop': pop + } + + +def test_lookup_pop_info(mocker): + + ims = mocker.patch('inventory_provider.db.ims.IMS') + with open('test/data/ims_pop_info_mx1_pra_cz.json') as data: + resp_data = json.load(data) + ims.return_value.get_entity_by_name.return_value = resp_data['router'] + ims.return_value.get_entity_by_id.return_value = resp_data['site'] + + ds = inventory_provider.db.ims.IMS( + 'dummy_base', 'dmmy_username', 'dummy_password') + res = lookup_pop_info(ds, 'dummy_host') + ds.get_entity_by_name.assert_called_once_with('Node', 'dummy_host') + ds.get_entity_by_id.assert_called_once_with( + 'Site', 445312, [2, 64, 256], True) + assert res == { + 'equipment-name': 'MX1.PRA.CZ', + 'status': InventoryStatus.IN_SERVICE.name, + 'pop': { + 'name': 'PRAGUE', + 'city': 'PRAGUE', + 'country': 'CZECH REPUBLIC', + 'abbreviation': 'PRA', + 'longitude': 14.39166667, + 'latitude': 50.10166667, + } + } \ No newline at end of file -- GitLab