def get_testcase_from_module(product_name, module_name): """ :summary: Return the test suite via the module of testcase :param product_name: The name of product :param module_name: The name of test module :return: Global list test_cases """ global test_cases module_path = get_testcase_dir() + os.sep + product_name + \ os.sep + module_name print_log("The path of module to analyze is %s." % module_path, "debug") with open(module_path) as f: for line in f.readlines(): # Find all the names of testcase if re.match("^class", line) and "BaseTestCase)" in line: test_cases.append( "testcase.%s.%s.%s" % ( product_name, module_name[:-3], re.sub("\(.+\):\n", "", line[6:]) ) ) return test_cases
def get_testcase(mode="smoke"): mode_lower = mode.lower() if mode_lower in ("smoke", "config", "demo"): mongo = MongoDB() return mongo.get_testcases_from_mongo(mode_lower) elif mode == "all": global test_cases test_case_dir = get_testcase_dir() all_folders = os.listdir(test_case_dir) all_case_files = [] for folder in all_folders: sub_test_case_dir = test_case_dir + os.sep + folder if os.path.isdir(sub_test_case_dir): all_case_files.append({folder: os.listdir(sub_test_case_dir)}) all_case_module = deepcopy(all_case_files) for item in all_case_module: for product in item: for case in item[product]: if ".pyc" not in case and "__init__.py" not in case: get_testcase_from_module(product, case) return test_cases else: print_log("Cannot recognize mode '%s', please take a double check!" % mode, "error") sys.exit(-1)
def get_testcase(mode="smoke"): mode_lower = mode.lower() if mode_lower in ("smoke", "config", "demo"): mongo = MongoDB() return mongo.get_testcases_from_mongo(mode_lower) elif mode == "all": global test_cases test_case_dir = get_testcase_dir() all_folders = os.listdir(test_case_dir) all_case_files = [] for folder in all_folders: sub_test_case_dir = test_case_dir + os.sep + folder if os.path.isdir(sub_test_case_dir): all_case_files.append({folder: os.listdir(sub_test_case_dir)}) all_case_module = deepcopy(all_case_files) for item in all_case_module: for product in item: for case in item[product]: if ".pyc" not in case and "__init__.py" not in case: get_testcase_from_module(product, case) return test_cases else: print_log( "Cannot recognize mode '%s', please take a double check!" % mode, "error") sys.exit(-1)
def get_testcase_from_module(product_name, module_name): """ :summary: Return the test suite via the module of testcase :param product_name: The name of product :param module_name: The name of test module :return: Global list test_cases """ global test_cases module_path = get_testcase_dir() + os.sep + product_name + \ os.sep + module_name print_log("The path of module to analyze is %s." % module_path, "debug") with open(module_path) as f: for line in f.readlines(): # Find all the names of testcase if re.match("^class", line) and "BaseTestCase)" in line: test_cases.append("testcase.%s.%s.%s" % (product_name, module_name[:-3], re.sub("\(.+\):\n", "", line[6:]))) return test_cases