def init_config(self, config_dict, level): """ create/update context variables binds @param (dict) config_dict @param (str) level, "testset" or "testcase" testset: { "name": "smoke testset", "path": "tests/data/demo_testset_variables.yml", "requires": [], # optional "function_binds": {}, # optional "import_module_items": [], # optional "variables": [], # optional "request": { "base_url": "http://127.0.0.1:5000", "headers": { "User-Agent": "iOS/2.8.3" } } } testcase: { "name": "testcase description", "requires": [], # optional "function_binds": {}, # optional "import_module_items": [], # optional "variables": [], # optional "request": { "url": "/api/get-token", "method": "POST", "headers": { "Content-Type": "application/json" } }, "json": { "sign": "f1219719911caae89ccc301679857ebfda115ca2" } } @param (str) context level, testcase or testset """ # convert keys in request headers to lowercase config_dict = utils.lower_config_dict_key(config_dict) self.context.init_context(level) self.context.config_context(config_dict, level) request_config = config_dict.get('request', {}) parsed_request = self.context.get_parsed_request(request_config, level) base_url = parsed_request.pop("base_url", None) self.http_client_session = self.http_client_session or HttpSession( base_url) return parsed_request
def init_config(self, config_dict, level): """ create/update context variables binds @param (dict) config_dict { "name": "description content", "requires": ["random", "hashlib"], "function_binds": { "gen_random_string": \ "lambda str_len: ''.join(random.choice(string.ascii_letters + \ string.digits) for _ in range(str_len))", "gen_md5": \ "lambda *str_args: hashlib.md5(''.join(str_args).\ encode('utf-8')).hexdigest()" }, "import_module_items": ["test.data.debugtalk"], "variable_binds": [ {"TOKEN": "debugtalk"}, {"random": "${gen_random_string(5)}"}, ] } @param (str) context level, testcase or testset """ self.context.init_context(level) requires = config_dict.get('requires', []) self.context.import_requires(requires) function_binds = config_dict.get('function_binds', {}) self.context.bind_functions(function_binds, level) # import_module_functions will be deprecated soon module_items = config_dict.get('import_module_items', []) \ or config_dict.get('import_module_functions', []) self.context.import_module_items(module_items, level) variable_binds = config_dict.get('variable_binds', []) self.context.bind_variables(variable_binds, level) request_config = config_dict.get('request', {}) if level == "testset": base_url = request_config.pop("base_url", None) self.http_client_session = self.http_client_session or HttpSession(base_url) self.context.testcase_parser.file_path = config_dict.get("path", None) else: # testcase self.http_client_session = self.http_client_session or requests.Session() self.context.register_request(request_config, level)
def setUp(self): super(TestHttpClient, self).setUp() self.host = "http://127.0.0.1:5000" self.api_client = HttpSession(self.host) self.clear_users()
def setUp(self): super(TestHttpClient, self).setUp() self.api_client = HttpSession(self.host) self.headers = self.get_authenticated_headers() self.reset_all()