def test_load_testcases_by_path_folder(self): # absolute folder path path = os.path.join(os.getcwd(), 'tests/data') testset_list_1 = testcase.load_testcases_by_path(path) self.assertGreater(len(testset_list_1), 4) # relative folder path path = 'tests/data/' testset_list_2 = testcase.load_testcases_by_path(path) self.assertEqual(len(testset_list_1), len(testset_list_2)) # list/set container with file(s) path = [os.path.join(os.getcwd(), 'tests/data'), 'tests/data/'] testset_list_3 = testcase.load_testcases_by_path(path) self.assertEqual(len(testset_list_3), 2 * len(testset_list_1))
def run(self, path, mapping=None): """ run specified testset path or folder path. @param path: path could be in several type - absolute/relative file path - absolute/relative folder path - list/set container with file(s) and/or folder(s) (dict) mapping: passed in variables mapping, it will override variable_binds in config block """ success = True mapping = mapping or {} output = {} testsets = testcase.load_testcases_by_path(path) for testset in testsets: try: result = self._run_testset(testset, mapping) assert result["success"] output.update(result["output"]) except AssertionError: success = False return { "success": success, "output": output }
def test_load_testcases_by_path_layered(self): path = os.path.join(os.getcwd(), 'tests/data/demo_testset_layer.yml') testsets_list = testcase.load_testcases_by_path(path) self.assertIn("variable_binds", testsets_list[0]["config"]) self.assertIn("request", testsets_list[0]["config"]) self.assertIn("request", testsets_list[0]["testcases"][0]) self.assertIn("url", testsets_list[0]["testcases"][0]["request"]) self.assertIn("validators", testsets_list[0]["testcases"][0])
def test_load_testcases_by_path_not_exist(self): # absolute folder path path = os.path.join(os.getcwd(), 'tests/data_not_exist') testset_list_1 = testcase.load_testcases_by_path(path) self.assertEqual(testset_list_1, []) # relative folder path path = 'tests/data_not_exist' testset_list_2 = testcase.load_testcases_by_path(path) self.assertEqual(testset_list_2, []) # list/set container with file(s) path = [ os.path.join(os.getcwd(), 'tests/data_not_exist'), 'tests/data_not_exist/' ] testset_list_3 = testcase.load_testcases_by_path(path) self.assertEqual(testset_list_3, [])
def __init__(self, testcase_path): super(TaskSuite, self).__init__() self.suite_list = [] testsets = testcase.load_testcases_by_path(testcase_path) for testset in testsets: suite = ApiTestSuite(testset) self.addTest(suite) self.suite_list.append(suite)
def __init__(self, testcase_path): super(TaskSuite, self).__init__() self.suite_list = [] testsets = testcase.load_testcases_by_path(testcase_path) if not testsets: raise exception.TestcaseNotFound for testset in testsets: suite = ApiTestSuite(testset) self.addTest(suite) self.suite_list.append(suite)
def test_load_testcases_by_path_files(self): testsets_list = [] # absolute file path path = os.path.join(os.getcwd(), 'tests/data/demo_testset_hardcode.json') testset_list = testcase.load_testcases_by_path(path) self.assertEqual(len(testset_list), 1) self.assertIn("path", testset_list[0]["config"]) self.assertEqual(testset_list[0]["config"]["path"], path) self.assertEqual(len(testset_list[0]["testcases"]), 3) testsets_list.extend(testset_list) # relative file path path = 'tests/data/demo_testset_hardcode.yml' testset_list = testcase.load_testcases_by_path(path) self.assertEqual(len(testset_list), 1) self.assertIn("path", testset_list[0]["config"]) self.assertIn(path, testset_list[0]["config"]["path"]) self.assertEqual(len(testset_list[0]["testcases"]), 3) testsets_list.extend(testset_list) # list/set container with file(s) path = [ os.path.join(os.getcwd(), 'tests/data/demo_testset_hardcode.json'), 'tests/data/demo_testset_hardcode.yml' ] testset_list = testcase.load_testcases_by_path(path) self.assertEqual(len(testset_list), 2) self.assertEqual(len(testset_list[0]["testcases"]), 3) self.assertEqual(len(testset_list[1]["testcases"]), 3) testsets_list.extend(testset_list) self.assertEqual(len(testsets_list), 4) for testset in testsets_list: for test in testset["testcases"]: self.assertIn('name', test) self.assertIn('request', test) self.assertIn('url', test['request']) self.assertIn('method', test['request'])