diff options
Diffstat (limited to 'tests/mock_settings.py')
-rw-r--r-- | tests/mock_settings.py | 79 |
1 files changed, 68 insertions, 11 deletions
diff --git a/tests/mock_settings.py b/tests/mock_settings.py index 017ad7e..7e05ecf 100644 --- a/tests/mock_settings.py +++ b/tests/mock_settings.py @@ -17,43 +17,100 @@ # ECOMP is a trademark and service mark of AT&T Intellectual Property. """settings that are general to all tests""" +import copy import json import logging import sys import uuid from datetime import datetime +from functools import wraps from policyhandler import LogWriter from policyhandler.config import Config +from policyhandler.discovery import DiscoveryClient from policyhandler.onap.audit import Audit +class MonkeyHttpResponse(object): + """Monkey http reposne""" + def __init__(self, headers): + self.headers = headers or {} + + +class MonkeyedResponse(object): + """Monkey response""" + def __init__(self, full_path, res_json, json_body=None, headers=None): + self.full_path = full_path + self.req_json = json_body or {} + self.status_code = 200 + self.request = MonkeyHttpResponse(headers) + self.res = res_json + self.text = json.dumps(self.res) + + def json(self): + """returns json of response""" + return self.res + + def raise_for_status(self): + """ignoring""" + pass + + +def _fix_discover_config(func): + """the decorator""" + if not func: + return None + + def mocked_discover_get_value(*_): + """monkeypatch for get from consul""" + return copy.deepcopy(Settings.mock_config) + + @wraps(func) + def wrapper(*args, **kwargs): + """override the DiscoveryClient.get_value to fake discovering the config""" + + old_get_value = DiscoveryClient.get_value + DiscoveryClient.get_value = mocked_discover_get_value + + func_result = func(*args, **kwargs) + + DiscoveryClient.get_value = old_get_value + + return func_result + return wrapper + class Settings(object): """init all locals""" + _loaded = False logger = None RUN_TS = datetime.utcnow().isoformat()[:-3] + 'Z' - dicovered_config = None + mock_config = None deploy_handler_instance_uuid = str(uuid.uuid4()) @staticmethod + @_fix_discover_config def init(): """init configs""" - Config.load_from_file() - - with open("etc_upload/config.json", 'r') as config_json: - Settings.dicovered_config = json.load(config_json) + if Settings._loaded: + return + Settings._loaded = True - Config.load_from_file("etc_upload/config.json") + Config.init_config() - Config.settings["catch_up"] = {"interval": 10} + with open("tests/mock_config.json", 'r') as config_json: + Settings.mock_config = json.load(config_json) Settings.logger = logging.getLogger("policy_handler.unit_test") sys.stdout = LogWriter(Settings.logger.info) sys.stderr = LogWriter(Settings.logger.error) - print("print ========== run_policy_handler ==========") + print("print is expected to be in the log") Settings.logger.info("========== run_policy_handler ==========") - Audit.init(Config.get_system_name(), Config.LOGGER_CONFIG_FILE_PATH) + Audit.init(Config.system_name, Config.LOGGER_CONFIG_FILE_PATH) + audit = Audit(req_message="start testing policy handler") + + Config.discover(audit) + + Settings.logger.info("testing policy_handler with config: %s", Config.discovered_config) - Settings.logger.info("starting policy_handler with config:") - Settings.logger.info(Audit.log_json_dumps(Config.settings)) + audit.audit_done(" -- started") |