From 3deb6d5b8c27f702b6aad64be4d4dd06d073defd Mon Sep 17 00:00:00 2001
From: Erik Reid <erik.reid@geant.org>
Date: Tue, 11 Dec 2018 15:20:56 +0100
Subject: [PATCH] added tests for the remaining worker procs

---
 test/test_celery_worker.py | 72 ++++++++++++++++++++++++++++----------
 1 file changed, 53 insertions(+), 19 deletions(-)

diff --git a/test/test_celery_worker.py b/test/test_celery_worker.py
index 0c0c8617..9b7681ca 100644
--- a/test/test_celery_worker.py
+++ b/test/test_celery_worker.py
@@ -1,7 +1,9 @@
+"""
+just checks that the worker methods call the right functions
+and some data ends up in the right place ... otherwise not very detailed
+"""
 import logging
-
 import pytest
-
 from inventory_provider.tasks import worker
 
 
@@ -12,26 +14,9 @@ class MockedRedis(object):
     def __init__(self, *args, **kwargs):
         pass
 
-    # def set(self, key, value):
-    #     MockedRedis.db[key] = value
-
     def hset(self, name, key, value):
         MockedRedis.db.setdefault(name, {})[key] = value
 
-    # def hget(self, key, field):
-    #     value = MockedRedis.db[key]
-    #     return json.dumps(value[field]).encode('utf-8')
-    #
-    # def hgetall(self, key):
-    #     result = {}
-    #     for k, v in MockedRedis.db[key].items():
-    #         result[k.encode('utf-8')] \
-    #             = json.dumps(v).encode('utf-8')
-    #     return result
-    #
-    # def keys(self, *args, **kwargs):
-    #     return list([k.encode("utf-8") for k in MockedRedis.db.keys()])
-
 
 @pytest.fixture
 def mocked_worker_module(mocker, data_config):
@@ -39,6 +24,8 @@ def mocked_worker_module(mocker, data_config):
     worker.InventoryTask.config = data_config
     worker.InventoryTask.logger = logging.getLogger()
 
+    MockedRedis.db = {}
+
     mocker.patch(
         'inventory_provider.tasks.worker.redis.StrictRedis',
         MockedRedis)
@@ -54,5 +41,52 @@ def test_juniper_refresh_bgp(mocked_worker_module, mocker, cached_test_data):
         _mocked_fetch_bpg_config)
 
     for hostname in cached_test_data.keys():
+        assert 'hostname' not in MockedRedis.db
         worker.juniper_refresh_bgp(hostname)
+        assert MockedRedis.db[hostname]['bgp']
+
+
+def test_juniper_refresh_interfaces(mocked_worker_module, mocker, cached_test_data):
+
+    def _mocked_fetch_interfaces(hostname, _):
+        return cached_test_data[hostname]["interfaces"]
+
+    mocker.patch(
+        'inventory_provider.tasks.worker.juniper.fetch_interfaces',
+        _mocked_fetch_interfaces)
+
+    for hostname in cached_test_data.keys():
+        assert 'hostname' not in MockedRedis.db
+        worker.juniper_refresh_interfaces(hostname)
+        assert MockedRedis.db[hostname]['interfaces']
+
 
+def test_juniper_refresh_vrr(mocked_worker_module, mocker, cached_test_data):
+
+    def _mocked_fetch_vrr_config(hostname, _):
+        return cached_test_data[hostname]["vrr"]
+
+    mocker.patch(
+        'inventory_provider.tasks.worker.juniper.fetch_vrr_config',
+        _mocked_fetch_vrr_config)
+
+    for hostname in cached_test_data.keys():
+        assert 'hostname' not in MockedRedis.db
+        worker.juniper_refresh_vrr(hostname)
+        assert MockedRedis.db[hostname]['vrr']
+
+
+def test_snmp_refresh_interfaces(
+        mocked_worker_module, mocker, cached_test_data):
+
+    def _mocked_snmp_interfaces(hostname, community, _):
+        return cached_test_data[hostname]["snmp-interfaces"]
+
+    mocker.patch(
+        'inventory_provider.tasks.worker.snmp.get_router_interfaces',
+        _mocked_snmp_interfaces)
+
+    for hostname in cached_test_data.keys():
+        assert 'hostname' not in MockedRedis.db
+        worker.snmp_refresh_interfaces(hostname, 'fake-community')
+        assert MockedRedis.db[hostname]['snmp-interfaces']
-- 
GitLab