Source code for tests.manager_tests.mock_utils

"""
Utilities for mocking out AWS handlers
"""

import json

from mock import MagicMock


[docs]def mock_db_handler(data, keyname): """ :param dict data: dict from keys to data :param string keyname: """ def setup_resources(): pass def get_item(keys): key = keys[keyname] if key in data: return data[key] return None def query_items(*ignored): return data.values() handler = MagicMock() handler.get_item = MagicMock(side_effect=get_item) handler.query_items = MagicMock(side_effect=query_items) handler.setup_resources = MagicMock(side_effects=setup_resources) handler.mock_data = data return handler
[docs]def mock_gogs_handler(tokens): """ :param tokens: collection of valid user tokens """ def get_user(token): if token in tokens: return MagicMock() else: return None handler = MagicMock() handler.get_user = MagicMock(side_effect=get_user) return handler
[docs]def mock_lambda_handler(success_names, warning_names): """ :param success_names: collection of function names that will have successful invocations :param warning_names: collection of warning names that will have warnings during their invocations """ def invoke(name, payload): if name in success_names: result_payload = { "log": ["log1", "log2"], "errors": [], "warnings": [], "success": True } elif name in warning_names: result_payload = { "log": ["log1", "log2"], "errors": [], "warnings": ["warning1"], "success": True } else: result_payload = { "log": ["log1", "log2"], "errors": ["error1", "error1"], "warnings": [], "success": False } result = MagicMock() result.read.return_value = json.dumps(result_payload) return {"Payload": result} handler = MagicMock() handler.invoke = MagicMock(side_effect=invoke) return handler