def is_valid_test_meth(test_meth_dir_name, use_txml=False): plLogger = PLLogger.GetLogger('methodology') plLogger.LogDebug("MethodologyManagerUtils.is_valid_test_meth.begin") verdict = False install_dir = MethodologyManagerUtils.get_methodology_home_dir() seq_file = os.path.join(install_dir, test_meth_dir_name, mgr_const.MM_SEQUENCER_FILE_NAME) if not use_txml: meta_file = os.path.join(install_dir, test_meth_dir_name, mgr_const.MM_META_JSON_FILE_NAME) else: meta_file = os.path.join(install_dir, test_meth_dir_name, mgr_const.MM_META_FILE_NAME) if os.path.exists(seq_file) and os.path.isfile(seq_file): test_meth_key = None if os.path.exists(meta_file) and os.path.isfile(meta_file): if not use_txml: test_meth_key = \ meta_utils.extract_methodology_key_from_file(meta_file) else: test_meth_key = \ txml_utils.extract_methodology_key_from_file(meta_file) if not test_meth_key: plLogger.LogWarn("Meta file {} is invalid, skipping" .format(meta_file)) else: verdict = True plLogger.LogDebug("MethodologyManagerUtils.is_valid_test_meth.end") return verdict
def build_test_methodology(test_meth_path, use_txml=False): plLogger = PLLogger.GetLogger('methodology') plLogger.LogDebug("MethodologyManagerUtils.build_test_methodology.begin") if not test_meth_path: plLogger.LogError("Invalid methodology path") return plLogger.LogDebug("test_meth_path: " + str(test_meth_path)) # First, handle the methodology itself meth_man = MethodologyManagerUtils.get_meth_manager() if meth_man is None: plLogger.LogError("Error finding the methodology manager object") return ctor = CScriptableCreator() test_meth = ctor.Create("StmMethodology", meth_man) if test_meth is None: plLogger.LogError("Error creating methodology in memory") return if not use_txml: meta_file_path = os.path.join(test_meth_path, mgr_const.MM_META_JSON_FILE_NAME) else: meta_file_path = os.path.join(test_meth_path, mgr_const.MM_META_FILE_NAME) plLogger.LogDebug("meta_file_path: {}".format(meta_file_path)) if not use_txml: test_meth_key = meta_utils.extract_methodology_key_from_file( meta_file_path) test_meth_name = meta_utils.extract_methodology_name_from_file( meta_file_path) label_list = meta_utils.extract_test_labels_from_file(meta_file_path) else: test_meth_key = txml_utils.extract_methodology_key_from_file( meta_file_path) test_meth_name = txml_utils.extract_methodology_name_from_file( meta_file_path) label_list = txml_utils.extract_test_labels_from_file(meta_file_path) if not test_meth_key: plLogger.LogError("Could not get methodology key from meta " + "data file") return test_meth.Set("Name", test_meth_name) test_meth.Set("MethodologyKey", test_meth_key) test_meth.Set("Path", test_meth_path) test_meth.SetCollection("LabelList", label_list) # Now handle any test cases. test_case_path = os.path.join(test_meth_path, mgr_const.MM_TEST_CASE_SUBDIR) plLogger.LogDebug("test_case_path: " + str(test_case_path)) if os.path.exists(test_case_path): # If the path exists then there might be test cases for filename in os.listdir(test_case_path): plLogger.LogDebug("process filename: " + str(filename)) if os.path.isfile(os.path.join(test_case_path, filename)): # skip regular files. We want to process subdirectories. continue MethodologyManagerUtils.build_test_case(test_meth, os.path.join(test_case_path, filename), use_txml) else: plLogger.LogDebug("No test cases found. Skipping test-case processing.") plLogger.LogDebug("MethodologyManagerUtils.build_test_methodology.end")