From 1e4fdbd99ccdf84f19f6bfcbfe970bce043eebd7 Mon Sep 17 00:00:00 2001 From: Robert Latta <robert.latta@geant.org> Date: Fri, 7 Dec 2018 14:33:19 +0000 Subject: [PATCH] Tests for alarmsdb --- test/test_alarmsdb.py | 101 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 test/test_alarmsdb.py diff --git a/test/test_alarmsdb.py b/test/test_alarmsdb.py new file mode 100644 index 00000000..c993a762 --- /dev/null +++ b/test/test_alarmsdb.py @@ -0,0 +1,101 @@ +import inventory_provider.alarmsdb as alarmsdb + + +def test_infinera_interface_status(mocker): + mocked_get_cursor = mocker.patch('inventory_provider.alarmsdb.cursor') + mocked_execute = mocked_get_cursor. \ + return_value.__enter__.return_value.execute + mocked_fetchone = mocked_get_cursor.return_value.__enter__. \ + return_value.fetchone + mocked_fetchone.return_value = ('Raised',) + assert alarmsdb.get_last_known_infinera_interface_status( + None, 'eq1', 'intfc1' + ) == "down" + + mocked_fetchone.return_value = ("Clear",) + assert alarmsdb.get_last_known_infinera_interface_status( + None, 'eq1', 'intfc1' + ) == "up" + + mocked_fetchone.return_value = () + assert alarmsdb.get_last_known_infinera_interface_status( + None, 'eq1', 'intfc1' + ) == "unknown" + + mocked_execute.assert_called_with( + "SELECT status FROM infinera_alarms WHERE" + " CONCAT(ne_name, '-', REPLACE(object_name, 'T', '')) = %s" + " ORDER BY ne_init_time DESC, ne_clear_time DESC LIMIT 1", + ("eq1-intfc1",)) + + +def test_coriant_interface_status(mocker): + mocked_get_cursor = mocker.patch('inventory_provider.alarmsdb.cursor') + mocked_execute = mocked_get_cursor. \ + return_value.__enter__.return_value.execute + mocked_fetchone = mocked_get_cursor.return_value.__enter__. \ + return_value.fetchone + mocked_fetchone.return_value = ('Raised',) + assert alarmsdb.get_last_known_coriant_interface_status( + None, 'eq1', 'intfc1' + ) == "down" + + mocked_fetchone.return_value = ("Clear",) + assert alarmsdb.get_last_known_coriant_interface_status( + None, 'eq1', 'intfc1' + ) == "up" + + mocked_fetchone.return_value = () + assert alarmsdb.get_last_known_coriant_interface_status( + None, 'eq1', 'intfc1' + ) == "unknown" + + mocked_execute.assert_called_with( + "SELECT status FROM coriant_alarms" + " WHERE ne_id_name = %s AND entity_string LIKE %s" + " ORDER BY last_event_time DESC LIMIT 1", + ("eq1", "intfc1-%")) + + +def test_juniper_interface_status(mocker): + mocked_get_cursor = mocker.patch('inventory_provider.alarmsdb.cursor') + mocked_execute = mocked_get_cursor. \ + return_value.__enter__.return_value.execute + mocked_fetchone = mocked_get_cursor.return_value.__enter__. \ + return_value.fetchone + mocked_fetchone.return_value = (0,) + assert alarmsdb.get_last_known_juniper_link_interface_status( + None, 'eq1', 'intfc1' + ) == "down" + + mocked_fetchone.return_value = (1,) + assert alarmsdb.get_last_known_juniper_link_interface_status( + None, 'eq1', 'intfc1' + ) == "up" + + mocked_fetchone.return_value = () + assert alarmsdb.get_last_known_juniper_link_interface_status( + None, 'eq1', 'intfc1' + ) == "unknown" + + mocked_execute.assert_called_with( + "SELECT IF(link_admin_status = 'up'" + " AND link_oper_status = 'up', 1, 0)" + " AS up FROM juniper_alarms" + " WHERE equipment_name = %s AND link_interface_name = %s" + " ORDER BY alarm_id DESC LIMIT 1", + ("lo0.eq1", "intfc1")) + + +def test_interface_status(mocker): + mocked_infinera = mocker.patch( + 'inventory_provider.alarmsdb.get_last_known_infinera_interface_status') + mocked_infinera.return_value = "unknown" + mocked_coriant = mocker.patch( + 'inventory_provider.alarmsdb.get_last_known_coriant_interface_status') + mocked_coriant.return_value = "unknown" + mocked_juniper = mocker.patch( + 'inventory_provider.alarmsdb.' + 'get_last_known_juniper_link_interface_status') + mocked_juniper.return_value = "unknown" + assert alarmsdb.get_last_known_interface_status(None, '', '') == "unknown" -- GitLab