import inventory_provider.db.opsdb def test_update_fields(mocker): mocker.patch("inventory_provider" ".db.opsdb._juniper_field_update") t = {"manufacturer": "juniper"} inventory_provider.db.opsdb._update_fields(t) inventory_provider.db.opsdb \ ._juniper_field_update.assert_called_once_with(t) mocker.patch("inventory_provider" ".db.opsdb._infinera_field_update") t = {"manufacturer": "infinera"} inventory_provider.db.opsdb._update_fields(t) inventory_provider.db.opsdb \ ._infinera_field_update.assert_called_once_with(t) f = {"manufacturer": "non-existent"} r = inventory_provider.db.opsdb._update_fields(f) assert f == r def test_infinera_field_update(): i = { "equipment": "AMS01-DTNX10-1-1", "card_id": "tim-b-5-7", "port": "1" } r = inventory_provider.db.opsdb._infinera_field_update(i) assert r["equipment"] == "AMS01-DTNX10-1" assert r["interface_name"] == "1-B-5-7-1" i = { "equipment": "BUD01_CX_01", "card_id": "tim-1/2", "port": "1" } r = inventory_provider.db.opsdb._infinera_field_update(i) assert r["equipment"] == "BUD01_CX_01" assert r["interface_name"] == "1/2-1" i = { "equipment": "irrelevant", "card_id": "tim_1/2", "port": "1" } r = inventory_provider.db.opsdb._infinera_field_update(i) assert r["interface_name"] == "TIM_1/2-1" def test_juniper_field_update(): i = { "interface_name": "xe-1/2", "logical_unit": None } r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-1/2" i["interface_name"] = "xe-1/2" i["logical_unit"] = 101 r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-1/2.101" i["interface_name"] = "xe-1/2" i["logical_unit"] = 0 r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-1/2.0" i["interface_name"] = "xe-1/2" i["logical_unit"] = None i["port"] = 0 r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-1/2" i["interface_name"] = None i["card_id"] = "xe-2/0" i["logical_unit"] = None i["port"] = None r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-2/0" i["interface_name"] = None i["port"] = "0" r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-2/0/0" i["interface_name"] = None i["port"] = 0 r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-2/0/0" i["interface_name"] = None i["logical_unit"] = "123" r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-2/0/0.123" i["interface_name"] = None i["logical_unit"] = 123 r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-2/0/0.123" def test_coriant_update_fields(): i = { "equipment": "groove-1", "card_id": "2-3", "port": None } r = inventory_provider.db.opsdb._coriant_field_update(i) assert r["interface_name"] == "2-3" i = { "equipment": "groove-1", "card_id": "2-3", "port": "4" } r = inventory_provider.db.opsdb._coriant_field_update(i) assert r["interface_name"] == "2-3/4" def test_get_circuits(mocker): mocker.patch("inventory_provider.db.db.cursor") mocked_convert_to_dict = mocker.patch( "inventory_provider.db.opsdb._convert_to_dict") i = {"manufacturer": "infinera"} j = {"manufacturer": "juniper"} mocked_convert_to_dict.return_value = [i, j] mocked_infinera_update = mocker.patch( "inventory_provider.db.opsdb._infinera_field_update") mocked_juniper_update = mocker.patch( "inventory_provider.db.opsdb._juniper_field_update") inventory_provider.db.opsdb.get_circuits(None) mocked_infinera_update.assert_called_once_with(i) mocked_juniper_update.assert_called_once_with(j)