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")