def test_parse(self): configs = [] for project, _ in ALL_FILES_DICT.items(): configs.append((project, 'xxxxx', 'yyyyy')) names = [] for config in configs: names.append(Runner.name(*config)) # get dicts which_names, which_project = Comparator.parse_names(names) # test for name in names: project = Runner.dename(name)['project'] assert name in which_names[project] assert which_project[name] == project
def parse_names( names: List[str]) -> Tuple[Dict[str, List[str]], Dict[str, str]]: # prepare project order and name order dict which_names = dict() which_project = dict() # parse for name in names: project_name = Runner.dename(name)['project'] if project_name in which_names: which_names[project_name].append(name) else: which_names[project_name] = [name] which_project[name] = project_name return which_names, which_project
def test_name(self): for _ in range(1000): # loop for 1000 times project_name = list(ALL_FILES_DICT.keys())[random.randint( 0, len(ALL_FILES_DICT) - 1)] form = self.random_string() method = self.random_string() # prepare a dummy option option = dict() size = random.randint(0, 3) for _ in range(size): option[self.random_string()] = self.random_string() # name encode name = Runner.name(project_name, form, method, option) # decode name config = Runner.dename(name) # check assert project_name == config['project'] assert form == config['form'] assert method == config['method']