diff --git a/ate/utils.py b/ate/utils.py index 2dcd83c8..7832e932 100644 --- a/ate/utils.py +++ b/ate/utils.py @@ -145,27 +145,28 @@ def load_testcases_by_path(path): - absolute/relative file path - absolute/relative folder path - list/set container with file(s) and/or folder(s) - @return all loaded testcases in a list + @return testcase sets list, each testset is corresponding to a file + [ + [testcase11, testcase12], + [testcase21, testcase22, testcase23] + ] """ - testcases_list = [] - if isinstance(path, (list, set)): - for file_path in set(path): - _testcases_list = load_testcases_by_path(file_path) - for testcase in _testcases_list: - testcases_list.append(testcase) + testsets_list = [] - return testcases_list + for file_path in set(path): + _testsets_list = load_testcases_by_path(file_path) + testsets_list.extend(_testsets_list) + + return testsets_list if not os.path.isabs(path): path = os.path.join(os.getcwd(), path) - if os.path.isfile(path): - testcases = load_testcases(path) - testcases_list.extend(testcases) - if os.path.isdir(path): - files = load_foler_files(path) - testcases_list.extend(load_testcases_by_path(files)) + files_list = load_foler_files(path) + return load_testcases_by_path(files_list) - return testcases_list + if os.path.isfile(path): + testcases_list = load_testcases(path) + return [testcases_list] diff --git a/test/test_utils.py b/test/test_utils.py index f2d5098a..a307e1ed 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -251,54 +251,59 @@ class TestUtils(ApiServerUnittest): self.assertIn(file2, files) def test_load_testcases_by_path_files(self): - testcases_list = [] + testsets_list = [] # absolute file path path = os.path.join( os.getcwd(), 'test/data/simple_demo_no_auth.json') - testcases_list.extend(utils.load_testcases_by_path(path)) - self.assertEqual(len(testcases_list), 2) + testset_list = utils.load_testcases_by_path(path) + self.assertEqual(len(testset_list), 1) + self.assertEqual(len(testset_list[0]), 2) + testsets_list.extend(testset_list) # relative file path path = 'test/data/simple_demo_no_auth.yml' - testcases_list.extend(utils.load_testcases_by_path(path)) - self.assertEqual(len(testcases_list), 4) + testset_list = utils.load_testcases_by_path(path) + self.assertEqual(len(testset_list), 1) + self.assertEqual(len(testset_list[0]), 2) + testsets_list.extend(testset_list) # list/set container with file(s) path = [ os.path.join(os.getcwd(), 'test/data/simple_demo_no_auth.json'), 'test/data/simple_demo_no_auth.yml' ] - testcases_list.extend(utils.load_testcases_by_path(path)) - self.assertEqual(len(testcases_list), 8) + testset_list = utils.load_testcases_by_path(path) + self.assertEqual(len(testset_list), 2) + self.assertEqual(len(testset_list[0]), 2) + self.assertEqual(len(testset_list[1]), 2) + testsets_list.extend(testset_list) + self.assertEqual(len(testsets_list), 4) - for testcase in testcases_list: - testcase = testcase["test"] - self.assertIn('name', testcase) - self.assertIn('request', testcase) - self.assertIn('response', testcase) - self.assertIn('url', testcase['request']) - self.assertIn('method', testcase['request']) + for testset in testsets_list: + for testcase in testset: + testcase = testcase["test"] + self.assertIn('name', testcase) + self.assertIn('request', testcase) + self.assertIn('response', testcase) + self.assertIn('url', testcase['request']) + self.assertIn('method', testcase['request']) def test_load_testcases_by_path_folder(self): - testcases_list_1 = [] - testcases_list_2 = [] - testcases_list_3 = [] - # absolute folder path path = os.path.join(os.getcwd(), 'test/data') - testcases_list_1.extend(utils.load_testcases_by_path(path)) - self.assertGreater(len(testcases_list_1), 10) + testset_list_1 = utils.load_testcases_by_path(path) + self.assertGreater(len(testset_list_1), 6) # relative folder path path = 'test/data/' - testcases_list_2.extend(utils.load_testcases_by_path(path)) - self.assertEqual(len(testcases_list_1), len(testcases_list_2)) + testset_list_2 = utils.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(), 'test/data'), 'test/data/' ] - testcases_list_3.extend(utils.load_testcases_by_path(path)) - self.assertEqual(len(testcases_list_3), 2 * len(testcases_list_1)) + testset_list_3 = utils.load_testcases_by_path(path) + self.assertEqual(len(testset_list_3), 2 * len(testset_list_1))