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))
Beispiel #2
0
    def __init__(self, path, mapping=None, http_client_session=None):
        """
        @params
            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 variables in config block
        """
        super(TaskSuite, self).__init__()
        mapping = mapping or {}

        if not isinstance(path, list):
            # absolute/relative file/folder path
            path = [path]

        # remove duplicate path
        path = set(path)

        testsets = testcase.load_testcases_by_path(path)
        if not testsets:
            raise exception.TestcaseNotFound

        self.suite_list = []
        for testset in testsets:
            suite = ApiTestSuite(testset, mapping, http_client_session)
            self.addTest(suite)
            self.suite_list.append(suite)
Beispiel #3
0
    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 variables 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
        }
Beispiel #4
0
    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 variables 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("variables", 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("validate", 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 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("variables", 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("validate", 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 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))
Beispiel #10
0
 def test_run_testcase_with_empty_header(self):
     testcase_file_path = os.path.join(os.getcwd(),
                                       'tests/data/test_bugfix.yml')
     testsets = testcase.load_testcases_by_path(testcase_file_path)
     testset = testsets[0]
     config_dict_headers = testset["config"]["request"]["headers"]
     test_dict_headers = testset["testcases"][0]["request"]["headers"]
     headers = utils.deep_update_dict(config_dict_headers,
                                      test_dict_headers)
     self.assertEqual(headers["Content-Type"], "application/json")
Beispiel #11
0
    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)
Beispiel #12
0
    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'])
    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'])