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