def test_delete(stc): plLogger = PLLogger.GetLogger('methodology') plLogger.LogInfo("test_delete.begin") ctor = CScriptableCreator() hnd_reg = CHandleRegistry.Instance() meth_key = "UNITTEST_DEL" UnitTestUtils.create_fake_installed_test_meth(meth_key, []) UnitTestUtils.add_fake_test_case(meth_key, [], meth_key + "-1") UnitTestUtils.add_fake_test_case(meth_key, [], meth_key + "-2") # Update the BLL objects meth_man_utils.build_test_methodology_manager(use_txml=True) meth_handle = UnitTestUtils.get_methodology_handle(meth_key) assert meth_handle meth_obj = hnd_reg.Find(meth_handle) assert meth_obj is not None tc_obj_list = meth_obj.GetObjects("StmTestCase") assert len(tc_obj_list) == 2 tc_obj1 = None tc_obj2 = None for tc_obj in tc_obj_list: if tc_obj.Get("TestCaseKey") == meth_key + "-1": tc_obj1 = tc_obj elif tc_obj.Get("TestCaseKey") == meth_key + "-2": tc_obj2 = tc_obj assert tc_obj1 tc_obj1_path = tc_obj1.Get("Path") assert tc_obj2 tc_obj2_path = tc_obj2.Get("Path") # Delete an installed test case cmd = ctor.CreateCommand(PKG + ".DeleteTestCaseCommand") cmd.Set("StmTestCase", tc_obj2.GetObjectHandle()) cmd.Execute() cmd.MarkDelete() # Check the path assert os.path.exists(tc_obj1_path) assert not os.path.exists(tc_obj2_path) # Delete installed test methodology cmd = ctor.CreateCommand(PKG + ".DeleteMethodologyCommand") cmd.Set("StmMethodology", meth_obj.GetObjectHandle()) cmd.Execute() cmd.MarkDelete() stc_sys = CStcSystem.Instance() common_data_path = stc_sys.GetApplicationCommonDataPath() install_dir = os.path.join(common_data_path, mgr_const.MM_TEST_METH_DIR) test_meth_dir = os.path.join(install_dir, meth_key) assert os.path.exists(test_meth_dir) is False plLogger.LogInfo("test_delete.end")
def test_create_new_testcase(stc): plLogger = PLLogger.GetLogger('methodology') plLogger.LogInfo("test_create_new_testcase") # Test empty meth key err_msg, tc_key, tc_obj_hnd = meth_man_utils.create_new_testcase("", "") assert err_msg == "Methodology key appears to be invalid." assert tc_key is None assert tc_obj_hnd is None # Create a fresh copy of the UnitTestMeth methodology... meth_man_utils.methodology_rmdir("UnitTestMeth") meth_path = meth_man_utils.methodology_mkdir("UnitTestMeth") UnitTestUtils.create_fake_installed_test_meth("UnitTestMeth", []) meth_man_utils.build_test_methodology(meth_path, True) err_msg, tc_key, tc_obj_hnd = meth_man_utils.create_new_testcase("UnitTestMeth", "tcx") assert err_msg == "" assert tc_key is not None assert tc_obj_hnd is not None # Clean up... meth_man_utils.methodology_rmdir("UnitTestMeth") return
def test_delete_with_active_testcase(stc): plLogger = PLLogger.GetLogger('methodology') plLogger.LogInfo("test_delete_active_test.begin") ctor = CScriptableCreator() hnd_reg = CHandleRegistry.Instance() meth_key = "UNITTEST_DEL" UnitTestUtils.create_fake_installed_test_meth(meth_key, []) UnitTestUtils.add_fake_test_case(meth_key, [], meth_key + "-1") # Update the BLL objects meth_man_utils.build_test_methodology_manager(use_txml=True) meth_man = meth_man_utils.get_meth_manager() meth_handle = UnitTestUtils.get_methodology_handle(meth_key) assert meth_handle meth_obj = hnd_reg.Find(meth_handle) assert meth_obj is not None meth_path = meth_obj.Get("Path") assert os.path.exists(meth_path) tc_obj = meth_obj.GetObject("StmTestCase") assert tc_obj tc_path = tc_obj.Get("Path") assert os.path.exists(tc_path) # Set up the test case to look as if it were active # Set the active test case meth_man_utils.set_active_test_case(tc_obj) # Create the results object and set its status res_obj = ctor.Create("StmTestResult", tc_obj) status_dict = {"execStatus": "running", "verdict": "created", "verdictExplanation": "Not Defined"} res_obj.Set("Status", json.dumps(status_dict)) # Try to delete the methodology cmd = ctor.CreateCommand(PKG + ".DeleteMethodologyCommand") cmd.Set("StmMethodology", meth_obj.GetObjectHandle()) cmd.Execute() assert cmd.Get("PassFailState") == "FAILED" cmd.MarkDelete() # Check the bll objects found_hnd = False for meth in meth_man.GetObjects("StmMethodology"): if meth.GetObjectHandle() == meth_handle: found_hnd = True break assert found_hnd # Check the active test case assert meth_man_utils.get_active_test_case().GetObjectHandle() == \ tc_obj.GetObjectHandle() # Check the path assert os.path.exists(tc_path) assert os.path.exists(meth_path) # Set the testcase to completed status_dict = {"execStatus": "completed", "verdict": "created", "verdictExplanation": "Not Defined"} res_obj.Set("Status", json.dumps(status_dict)) # Try to delete the methodology cmd = ctor.CreateCommand(PKG + ".DeleteMethodologyCommand") cmd.Set("StmMethodology", meth_obj.GetObjectHandle()) cmd.Execute() assert cmd.Get("PassFailState") == "PASSED" cmd.MarkDelete() # Check the bll objects found_hnd = False for meth in meth_man.GetObjects("StmMethodology"): if meth.GetObjectHandle() == meth_handle: found_hnd = True break assert not found_hnd # Check the active test case assert meth_man_utils.get_active_test_case() is None # Check the path assert not os.path.exists(meth_path) assert not os.path.exists(tc_path) stc_sys = CStcSystem.Instance() common_data_path = stc_sys.GetApplicationCommonDataPath() install_dir = os.path.join(common_data_path, mgr_const.MM_TEST_METH_DIR) test_meth_dir = os.path.join(install_dir, meth_key) assert os.path.exists(test_meth_dir) is False plLogger.LogInfo("test_delete_active_test.end")
def test_GetAllTestMethodologiesCommand(self, stc): ctor = CScriptableCreator() hnd_reg = CHandleRegistry.Instance() plLogger = PLLogger.GetLogger('methodology') plLogger.LogInfo("begin.test_GetAllTestMethodologiesCommand") test_pkg1 = "UNITTEST_GETALL1" test_pkg2 = "UNITTEST_GETALL2" test_pkg3 = "UNITTEST_GETALL3" UnitTestUtils.create_fake_installed_test_meth(test_pkg1, []) UnitTestUtils.create_fake_installed_test_meth(test_pkg2, []) UnitTestUtils.create_fake_installed_test_meth(test_pkg3, []) UnitTestUtils.add_fake_test_case(test_pkg1, [], "UNITTEST_GETALL1-1") UnitTestUtils.add_fake_test_case(test_pkg1, [], "UNITTEST_GETALL1-2") UnitTestUtils.add_fake_test_case(test_pkg1, [], "UNITTEST_GETALL1-3") UnitTestUtils.add_fake_test_case(test_pkg3, [], "UNITTEST_GETALL3-1") # Manually update TestMethodologyManager cmd = ctor.CreateCommand(PKG + ".UpdateTestMethodologyManagerCommand") cmd.Execute() cmd.MarkDelete() # Get all installed test methodologies list_cmd = ctor.CreateCommand(PKG + ".GetAllTestMethodologiesCommand") list_cmd.Execute() test_meth_handle_list = list_cmd.GetCollection("StmMethodologyList") list_cmd.MarkDelete() meth_key_list = [] meth_obj1 = None meth_obj2 = None meth_obj3 = None for meth_handle in test_meth_handle_list: meth_obj = hnd_reg.Find(meth_handle) assert meth_obj is not None meth_key = meth_obj.Get("MethodologyKey") if meth_key == test_pkg1: meth_obj1 = meth_obj elif meth_key == test_pkg2: meth_obj2 = meth_obj elif meth_key == test_pkg3: meth_obj3 = meth_obj assert meth_obj1 is not None assert meth_obj2 is not None assert meth_obj3 is not None cmd = ctor.CreateCommand(PKG + ".DeleteMethodologyCommand") cmd.Set("StmMethodology", meth_obj1.GetObjectHandle()) cmd.Execute() cmd.MarkDelete() cmd = ctor.CreateCommand(PKG + ".DeleteMethodologyCommand") cmd.Set("StmMethodology", meth_obj2.GetObjectHandle()) cmd.Execute() cmd.MarkDelete() cmd = ctor.CreateCommand(PKG + ".DeleteMethodologyCommand") cmd.Set("StmMethodology", meth_obj3.GetObjectHandle()) cmd.Execute() cmd.MarkDelete() # Manually update TestMethodologyManager cmd = ctor.CreateCommand(PKG + ".UpdateTestMethodologyManagerCommand") cmd.Execute() cmd.MarkDelete() # Get all installed test methodologies list_cmd = ctor.CreateCommand(PKG + ".GetAllTestMethodologiesCommand") list_cmd.Execute() test_meth_handle_list = list_cmd.GetCollection("StmMethodologyList") list_cmd.MarkDelete() meth_key_list = [] for meth_handle in test_meth_handle_list: meth_obj = hnd_reg.Find(meth_handle) meth_key_list.append(meth_obj.Get("MethodologyKey")) assert test_pkg1 not in meth_key_list assert test_pkg2 not in meth_key_list assert test_pkg3 not in meth_key_list list_cmd.MarkDelete() plLogger.LogInfo("end.test_GetAllTestMethodologiesCommand")
def test_UpdateMethodologyManagerCommand(stc): ctor = CScriptableCreator() stc_sys = CStcSystem.Instance() plLogger = PLLogger.GetLogger('methodology') plLogger.LogInfo("test_UpdateMethodologyManagerCommand") test_pkg1 = "test_meth_1" test_pkg2 = "test_meth_2" test_pkg3 = "test_meth_3" label_list1 = ["benchmarking", "BGP", "CSMP"] label_list2 = ["OTV", "DHCPv6"] label_list3 = [] # Clean up empty folders (if existing) meth_man_utils.methodology_rmdir(test_pkg1) meth_man_utils.methodology_rmdir(test_pkg2) meth_man_utils.methodology_rmdir(test_pkg3) UnitTestUtils.create_fake_installed_test_meth(test_pkg1, label_list1) UnitTestUtils.create_fake_installed_test_meth(test_pkg2, label_list2) UnitTestUtils.create_fake_installed_test_meth(test_pkg3, label_list3) # TODO: Uncomment the test case stuff once it's fixed. # UnitTestUtils.add_fake_test_case(test_pkg1, "test_case_1") # UnitTestUtils.add_fake_test_case(test_pkg1, "test_case_2") # UnitTestUtils.add_fake_test_case(test_pkg1, "test_case_3") # UnitTestUtils.add_fake_test_case(test_pkg3, "test_case_1") # Initialize the methodology manager by calling update cmd = ctor.CreateCommand(PKG_MGR + ".UpdateTestMethodologyManagerCommand") cmd.Execute() cmd.MarkDelete() meth_manager = meth_man_utils.get_meth_manager() test_meth_obj_list = meth_manager.GetObjects("StmMethodology") assert len(test_meth_obj_list) > 0 meth1 = None meth2 = None meth3 = None for test_meth_obj in test_meth_obj_list: meth_key = test_meth_obj.Get("MethodologyKey") plLogger.LogInfo("meth_name: " + test_meth_obj.Get("Name")) plLogger.LogInfo("meth_key: " + test_meth_obj.Get("MethodologyKey")) # test_case_list = [] label_list = [] if meth_key == test_pkg1: meth1 = test_meth_obj # test_case_list = ["test_case_1", "test_case_2", # "test_case_3", "original"] label_list = label_list1 elif meth_key == test_pkg2: meth2 = test_meth_obj # test_case_list = ["original"] label_list = label_list2 elif meth_key == test_pkg3: meth3 = test_meth_obj # test_case_list = ["original", "test_case_1"] label_list = label_list3 else: # No need to check this...anything here could be # from another unit test or other installed methodologies. continue # Check the path install_dir = os.path.join(stc_sys.GetApplicationCommonDataPath(), mgr_const.MM_TEST_METH_DIR) exp_path = os.path.join(install_dir, meth_key) assert test_meth_obj.Get("Path") == os.path.normpath(exp_path) # Check the test cases # if len(test_case_list) > 0: # test_case_obj_list = test_meth_obj.GetObjects("StmTestCase") # for test_case_obj in test_case_obj_list: # test_case_name = test_case_obj.Get("TestCaseName") # assert test_case_name in test_case_list # test_case_list.remove(test_case_name) # assert len(test_case_list) == 0 # Check the labels exp_label_list = test_meth_obj.GetCollection("LabelList") plLogger.LogInfo("exp_label_list: " + str(exp_label_list)) plLogger.LogInfo("act_label_list: " + str(label_list)) assert len(label_list) == len(exp_label_list) if len(exp_label_list) > 0: for label in label_list: plLogger.LogInfo(" -> looking for label: " + str(label)) assert label in exp_label_list assert meth1 is not None assert meth2 is not None assert meth3 is not None # Clean up cmd = ctor.CreateCommand(PKG_MGR + ".DeleteMethodologyCommand") cmd.Set("StmMethodology", meth1.GetObjectHandle()) cmd.Execute() cmd = ctor.CreateCommand(PKG_MGR + ".DeleteMethodologyCommand") cmd.Set("StmMethodology", meth2.GetObjectHandle()) cmd.Execute() cmd = ctor.CreateCommand(PKG_MGR + ".DeleteMethodologyCommand") cmd.Set("StmMethodology", meth3.GetObjectHandle()) cmd.Execute()