def parse(self, testcase_dict): testcase_dict = Parser.flatten_lowercase_keys_dict(testcase_dict) for keyword in TestCase.KEYWORD_DICT.keys(): value = testcase_dict.get(keyword) if value is None: continue if keyword == TestCaseKeywords.auth_username: self.auth_username = value elif keyword == TestCaseKeywords.auth_password: self.auth_password = value elif keyword == TestCaseKeywords.method: self.http_method = value elif keyword == TestCaseKeywords.delay: self.__delay = int(value) elif keyword == TestCaseKeywords.group: self.__group = value elif keyword == TestCaseKeywords.name: self.__name = value elif keyword == TestCaseKeywords.url: self.url = value elif keyword == TestCaseKeywords.extract_binds: self.extract_binds = value elif keyword == TestCaseKeywords.validators: self.validators = value elif keyword == TestCaseKeywords.headers: self.headers = value elif keyword == TestCaseKeywords.variable_binds: self.__variable_binds_dict = Parser.flatten_dictionaries(value) elif keyword == TestCaseKeywords.generator_binds: self.__generator_binds_dict = { str(k): str(v) for k, v in Parser.flatten_dictionaries(value) } elif keyword == TestCaseKeywords.options: raise NotImplementedError("Yet to Support") elif keyword == TestCaseKeywords.body: self.body = value elif keyword == TestCaseKeywords.absolute_urls: self.__abs_url = Parser.safe_to_bool(value) expected_status = testcase_dict.get(TestCaseKeywords.expected_status, []) if expected_status: self.expected_http_status_code_list = expected_status else: if self.http_method in ["POST", "PUT", "DELETE"]: self.expected_http_status_code_list = [200, 201, 204]
def parse(self, config_node): node = Parser.flatten_lowercase_keys_dict(config_node) for key, value in node.items(): if key == 'timeout': self.timeout = int(value) elif key == u'print_bodies': self.print_bodies = Parser.safe_to_bool(value) elif key == 'retries': self.retries = int(value) elif key == 'variable_binds': self.variable_binds = value elif key == u'generators': if not isinstance(value, list): raise TypeError( "generators in config should defined as list(array).") flat = Parser.flatten_dictionaries(value) gen_dict = {} for generator_name, generator_config in flat.items(): gen = parse_generator(generator_config) gen_dict[str(generator_name)] = gen self.generators = gen_dict