Skip to content
Snippets Groups Projects
Commit fe72049e authored by Robert Latta's avatar Robert Latta
Browse files

added test for poller interface cache pre-load

parent 526ef265
No related branches found
No related tags found
No related merge requests found
......@@ -3,7 +3,8 @@ import json
from inventory_provider.tasks import common
from inventory_provider.tasks.worker import transform_ims_data, \
extract_ims_data, persist_ims_data, \
retrieve_and_persist_neteng_managed_device_list
retrieve_and_persist_neteng_managed_device_list, \
populate_poller_interfaces_cache
def test_extract_ims_data(mocker):
......@@ -324,3 +325,182 @@ def test_retrieve_and_persist_neteng_managed_device_list(
result = retrieve_and_persist_neteng_managed_device_list()
assert result == device_list
assert json.loads(r.get('netdash')) == device_list
def test_populate_poller_interfaces_cache(
mocker, data_config, mocked_redis):
r = common._get_redis(data_config)
standard_interfaces = [
{
"router": "router_a.geant.net",
"name": "interface_a",
"bundle": ["ae_a"],
"bundle-parents": [],
"description": "DESCRIPTION A",
"circuits": []
},
{
"router": "router_a.geant.net",
"name": "ae_a",
"bundle": [],
"bundle-parents": [],
"description": "DESCRIPTION B",
"circuits": []
},
{
"router": "router_a.geant.net",
"name": "ae_a.123",
"bundle": [],
"bundle-parents": [],
"description": "DESCRIPTION C",
"circuits": []
},
]
lab_interfaces = [
{
"router": "lab_router_a.geant.net",
"name": "lab_interface_a",
"bundle": ["ae_c"],
"bundle-parents": [],
"description": "DESCRIPTION C",
"circuits": []
},
{
"router": "lab_router_a.geant.net",
"name": "ae_c",
"bundle": [],
"bundle-parents": [],
"description": "DESCRIPTION D",
"circuits": []
},
]
bundles = {
"router_z.geant.net": {"ae_1": ["interface_z"]},
"lab_router_a.geant.net": {"ae_c": ["lab_interface_a"]},
"router_a.geant.net": {"ae_a": ["interface_a"]},
}
snmp_indexes = {
"router_a.geant.net": {
"ae_a": {
"name": "ae_a",
"index": 1,
"community": "COMMUNITY_A"
},
"ae_a.123": {
"name": "ae_a.123",
"index": 1231,
"community": "COMMUNITY_A"
},
"interface_a": {
"name": "interface_a",
"index": 12,
"community": "COMMUNITY_A"
}
},
"router_b.geant.net": {
"ae_a": {
"name": "ae_a",
"index": 2,
"community": "COMMUNITY_A"
}
},
"lab_router_a.geant.net": {
"ae_c": {
"name": "ae_c",
"index": 3,
"community": "COMMUNITY_A"
}
},
}
services = {
"ROUTER_A": {
"AE_A.123": [{
"id": 321,
"name": "SERVICE A",
"type": "SERVICE TYPE",
"status": "operational"
}],
"AE_A.456": [{
"id": 654,
"name": "SERVICE B",
"type": "SERVICE TYPE",
"status": "operational"
}]
}
}
no_lab_res = [
{
"router": "router_a.geant.net",
"name": "interface_a",
"bundle": ["ae_a"],
"bundle-parents": [],
"description": "DESCRIPTION A",
"circuits": [],
"snmp-index": 12,
"dashboards": []
},
{
"router": "router_a.geant.net",
"name": "ae_a",
"bundle": [],
"bundle-parents": ["interface_a"],
"description": "DESCRIPTION B",
"circuits": [],
"snmp-index": 1,
"dashboards": []
},
{
"router": "router_a.geant.net",
"name": "ae_a.123",
"bundle": [],
"bundle-parents": ["interface_a"],
"description": "DESCRIPTION C",
"circuits": [{
"id": 321,
"name": "SERVICE A",
"type": "SERVICE TYPE",
"status": "operational"
}],
"snmp-index": 1231,
"dashboards": []
},
]
lab_res = [
{
"router": "lab_router_a.geant.net",
"name": "ae_c",
"bundle": [],
"bundle-parents": ["lab_interface_a"],
"description": "DESCRIPTION D",
"circuits": [],
"snmp-index": 3,
"dashboards": []
},
]
mocker.patch('inventory_provider.tasks.worker._load_interfaces',
side_effect=[standard_interfaces, lab_interfaces])
mocker.patch('inventory_provider.tasks.worker._load_interface_bundles',
return_value=bundles)
mocker.patch('inventory_provider.tasks.worker.load_snmp_indexes',
return_value=snmp_indexes)
mocker.patch('inventory_provider.tasks.worker._load_services',
return_value=services)
mocker.patch(
'inventory_provider.tasks.worker.InventoryTask.config'
)
mocker.patch('inventory_provider.tasks.worker.get_next_redis',
return_value=r)
populate_poller_interfaces_cache()
assert r.exists("classifier-cache:poller-interfaces:no-lab")
assert r.exists("classifier-cache:poller-interfaces:all")
no_lab = r.get("classifier-cache:poller-interfaces:no-lab").decode("utf-8")
all = r.get("classifier-cache:poller-interfaces:all").decode("utf-8")
assert json.loads(no_lab) == no_lab_res
all_res = no_lab_res + lab_res
assert json.loads(all) == all_res
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment