load_testcases_by_path: return testcase sets list, each testset is corresponding to a file

This commit is contained in:
debugtalk
2017-06-26 20:57:22 +08:00
parent e269ce6671
commit b5a61c8195
2 changed files with 45 additions and 39 deletions

View File

@@ -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]

View File

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