From ffd1e45df913b30d0ff53fc3130d3375d221457f Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Tue, 11 Dec 2018 14:54:18 +0100 Subject: [PATCH] first celery worker test --- test/test_celery_worker.py | 58 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 test/test_celery_worker.py diff --git a/test/test_celery_worker.py b/test/test_celery_worker.py new file mode 100644 index 00000000..0c0c8617 --- /dev/null +++ b/test/test_celery_worker.py @@ -0,0 +1,58 @@ +import logging + +import pytest + +from inventory_provider.tasks import worker + + +class MockedRedis(object): + + db = {} + + 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): + + worker.InventoryTask.config = data_config + worker.InventoryTask.logger = logging.getLogger() + + mocker.patch( + 'inventory_provider.tasks.worker.redis.StrictRedis', + MockedRedis) + + +def test_juniper_refresh_bgp(mocked_worker_module, mocker, cached_test_data): + + def _mocked_fetch_bpg_config(hostname, _): + return cached_test_data[hostname]["bgp"] + + mocker.patch( + 'inventory_provider.tasks.worker.juniper.fetch_bgp_config', + _mocked_fetch_bpg_config) + + for hostname in cached_test_data.keys(): + worker.juniper_refresh_bgp(hostname) + -- GitLab