コード例 #1
0
    def test_templates_template_sql_file(self):
        """Test loadTestsFromName for a dynamically generated sql template test method."""
        test_loader = TINCTestLoader()
        test_suite = test_loader.loadTestsFromName('mpp.models.test.sql_related.test_sql_test_case.MockSQLTemplateTestCaseExplicit.test_template_query04')
        test_case = test_suite._tests[0]
        # Template test case should work as if it is non-template test case...
        self.assertEqual(test_case.name, "MockSQLTemplateTestCaseExplicit.test_template_query04")
        self.assertEqual(test_case.author, 'shahn17')
        self.assertEqual(test_case.description, 'template test case')

        sql_file_path = os.path.join(test_case.get_out_dir(), "MockSQLTemplateTestCaseExplicit", "template_query04.sql")
        ans_file_path = os.path.join(test_case.get_out_dir(), "MockSQLTemplateTestCaseExplicit", "template_query04.ans")
        original_sql_file_path = os.path.join(os.path.dirname(sys.modules[test_case.__class__.__module__].__file__), test_case.__class__.sql_dir, test_case.__class__.template_dir, "query04.sql")
        original_ans_file_path = os.path.join(os.path.dirname(sys.modules[test_case.__class__.__module__].__file__), test_case.__class__.ans_dir, test_case.__class__.template_dir, "query04.ans")
        self.assertEqual(test_case.sql_file, sql_file_path)
        self.assertEqual(test_case.ans_file, ans_file_path)
        self.assertEqual(test_case._original_sql_file, original_sql_file_path)
        self.assertEqual(test_case._original_ans_file, original_ans_file_path)
        self.assertTrue(os.path.exists(test_case.sql_file))
        self.assertTrue(os.path.exists(test_case.ans_file))
        self.assertTrue(os.path.exists(test_case._original_sql_file))
        self.assertTrue(os.path.exists(test_case._original_ans_file))
        # Cleanup
        dir_path = os.path.join(test_case.get_out_dir(), "MockSQLTemplateTestCaseExplicit")
        self.assertTrue(os.path.exists(dir_path))
        shutil.rmtree(dir_path)
コード例 #2
0
 def test_infer_metadata(self):
     test_loader = TINCTestLoader()
     test_suite = test_loader.loadTestsFromTestCase(MockSQLTestCase)
     test_case = None
     for case in test_suite._tests:
         if case.name == "MockSQLTestCase.test_query02":
             test_case = case
コード例 #3
0
 def test_skip_when_tag_in_sql_file(self):
     test_loader = TINCTestLoader()
     test_suite = test_loader.loadTestsFromTestCase(MockSQLTestCaseForSkip)
     test_case = None
     for case in test_suite._tests:
         if case.name == "MockSQLTestCaseForSkip.test_query01":
             test_case = case
コード例 #4
0
    def test_templates_all_files(self):
        """Test loadTestsFromName for a class name"""
        test_loader = TINCTestLoader()
        test_suite = test_loader.loadTestsFromName('mpp.models.test.sql_related.test_sql_test_case.MockSQLTemplateTestCase')
        # 5 tests for 3 sql files in the current directory, and 2 sql files in the template directory
        self.assertEquals(len(test_suite._tests), 5)
        for test_case in test_suite._tests:
            if test_case.name == 'MockSQLTemplateTestCase.test_template_query04':
                break
        
        self.assertEqual(test_case.name, "MockSQLTemplateTestCase.test_template_query04")
        self.assertEqual(test_case.author, 'shahn17')
        self.assertEqual(test_case.description, 'template test case')
        
        sql_file_path = os.path.join(test_case.get_out_dir(), "MockSQLTemplateTestCase", "template_query04.sql")
        ans_file_path = os.path.join(test_case.get_out_dir(), "MockSQLTemplateTestCase", "template_query04.ans")
        original_sql_file_path = os.path.join(os.path.dirname(sys.modules[test_case.__class__.__module__].__file__), test_case.__class__.sql_dir, test_case.__class__.template_dir, "query04.sql")
        original_ans_file_path = os.path.join(os.path.dirname(sys.modules[test_case.__class__.__module__].__file__), test_case.__class__.ans_dir, test_case.__class__.template_dir, "query04.ans")
        self.assertEqual(test_case.sql_file, sql_file_path)
        self.assertEqual(test_case.ans_file, ans_file_path)
        self.assertEqual(test_case._original_sql_file, original_sql_file_path)
        self.assertEqual(test_case._original_ans_file, original_ans_file_path)
        self.assertTrue(os.path.exists(test_case.sql_file))
        self.assertTrue(os.path.exists(test_case.ans_file))
        self.assertTrue(os.path.exists(test_case._original_sql_file))
        self.assertTrue(os.path.exists(test_case._original_ans_file))
        
        # Template test case sql file should exists
        sql_file_path = os.path.join(test_case.get_out_dir(), "MockSQLTemplateTestCase", "template_query04.sql")
        self.assertTrue(os.path.exists(sql_file_path))
        sql_file_data = None
        with open(sql_file_path, 'r') as sql_file_object:
            sql_file_data = sql_file_object.read()
        self.assertTrue(sql_file_data is not None)
        # Correct substitution
        self.assertTrue('my_percent' in sql_file_data)
        # Error in python code
        self.assertTrue('my_at@' in sql_file_data)
        # Error in sql template
        self.assertTrue('&AMP' in sql_file_data)

        # Template test case ans file should exists
        ans_file_path = os.path.join(test_case.get_out_dir(), "MockSQLTemplateTestCase", "template_query05.ans")
        self.assertTrue(os.path.exists(ans_file_path))
        ans_file_data = None
        with open(ans_file_path, 'r') as sql_file_object:
            ans_file_data = sql_file_object.read()
        self.assertTrue(ans_file_data is not None)
        # Correct substitution
        self.assertTrue('my_percent' in ans_file_data)
        # Error in python code
        self.assertTrue('my_at@' in ans_file_data)
        # Error in ans template
        self.assertTrue('&AMP' in ans_file_data)

        # Cleanup
        dir_path = os.path.join(test_case.get_out_dir(), "MockSQLTemplateTestCase")
        self.assertTrue(os.path.exists(dir_path))
        shutil.rmtree(dir_path)
コード例 #5
0
 def test_load_implicit_python_from_name(self):
     """Test loadTestsFromName for a dynamically generated sql test method"""
     test_loader = TINCTestLoader()
     test_suite = test_loader.loadTestsFromName('mpp.models.test.sql_related.test_sql_test_case.MockSQLTestCaseForLoader.test_query01')
     test_case = test_suite._tests[0]
     self.assertEqual(test_case.name, "MockSQLTestCaseForLoader.test_query01")
     self.assertEqual(test_case.author, 'lammin')
     self.assertEqual(test_case.description, 'test sql test case')
     self.assertEqual(test_case.created_datetime, datetime.strptime('2012-07-20 12:00:00', '%Y-%m-%d %H:%M:%S'))
     self.assertEqual(test_case.modified_datetime, datetime.strptime('2012-07-20 12:00:02', '%Y-%m-%d %H:%M:%S'))
     self.assertEqual(test_case.tags, set(['orca', 'hashagg', 'executor']))
コード例 #6
0
 def test_templates_regular_sql(self):
     """Test loadTestsFromName for a dynamically generated sql test method."""
     test_loader = TINCTestLoader()
     test_suite = test_loader.loadTestsFromName('mpp.models.test.sql_related.test_sql_test_case.MockSQLTemplateTestCaseRegular.test_query01')
     test_case = test_suite._tests[0]
     # Non-template test case should work as is...
     self.assertEqual(test_case.name, "MockSQLTemplateTestCaseRegular.test_query01")
     self.assertEqual(test_case.author, 'lammin')
     self.assertEqual(test_case.description, 'test sql test case')
     self.assertEqual(test_case.created_datetime, datetime.strptime('2012-07-20 12:00:00', '%Y-%m-%d %H:%M:%S'))
     self.assertEqual(test_case.modified_datetime, datetime.strptime('2012-07-20 12:00:02', '%Y-%m-%d %H:%M:%S'))
     self.assertEqual(test_case.tags, set(['orca', 'hashagg', 'executor']))
コード例 #7
0
 def test_optimizer_mode_both(self):
     test_loader = TINCTestLoader()
     test_suite = test_loader.loadTestsFromTestCase(MockSQLTestCaseForOptimizerModeBoth)
     for test in test_suite._tests:
         # Data provider should exists for query01 and query03.
         # query02 shouldn't have it, since its optimizer mode is overwritten with value 'off'
         if test.name == "MockSQLTestCaseForOptimizerModeBoth.test_query01" or test.name == "MockSQLTestCaseForOptimizerModeBoth.test_query03":
             self.assertEqual(test.optimizer_mode, "both")
             self.assertEqual(test.data_provider, "optimizer_handling")
         else:
             self.assertNotEqual(test.optimizer_mode, "both")
             self.assertTrue(test.data_provider is None)
コード例 #8
0
 def test_optimizer_mode_both(self):
     test_loader = TINCTestLoader()
     test_suite = test_loader.loadTestsFromTestCase(
         MockSQLTestCaseForOptimizerModeBoth)
     for test in test_suite._tests:
         # Data provider should exists for query01 and query03.
         # query02 shouldn't have it, since its optimizer mode is overwritten with value 'off'
         if test.name == "MockSQLTestCaseForOptimizerModeBoth.test_query01" or test.name == "MockSQLTestCaseForOptimizerModeBoth.test_query03":
             self.assertEqual(test.optimizer_mode, "both")
             self.assertEqual(test.data_provider, "optimizer_handling")
         else:
             self.assertNotEqual(test.optimizer_mode, "both")
             self.assertTrue(test.data_provider is None)
コード例 #9
0
 def test_infer_metadata(self):
     test_loader = TINCTestLoader()
     test_suite = test_loader.loadTestsFromTestCase(MockSQLTestCase)
     test_case = None
     for case in test_suite._tests:
         if case.name == "MockSQLTestCase.test_query02":
             test_case = case
     self.assertNotEqual(test_case, None)
     self.assertEqual(test_case.name, "MockSQLTestCase.test_query02")
     self.assertEqual(test_case.author, 'kumara64')
     self.assertEqual(test_case.description, 'test sql test case')
     self.assertEqual(test_case.created_datetime, datetime.strptime('2012-07-05 12:00:00', '%Y-%m-%d %H:%M:%S'))
     self.assertEqual(test_case.modified_datetime, datetime.strptime('2012-07-08 12:00:02', '%Y-%m-%d %H:%M:%S'))
     self.assertEqual(test_case.tags, set(['orca', 'hashagg', 'executor']))
     self.assertEqual(test_case.gucs, set(['gp_optimizer=on', 'gp_log_optimizer=on']))
コード例 #10
0
 def run_test(self, method_name, skip_expected,
              test_case_prefix = 'tinctest.test.test_version_check.MockTINCTestCaseWithGetVersion'):
     loader = TINCTestLoader()
     tinc_test_suite = loader.loadTestsFromName('%s.%s' %(test_case_prefix, method_name), dryrun=True)
     with closing(_WritelnDecorator(StringIO())) as buffer:
         tinc_test_result = tinctest.TINCTextTestResult(buffer, True, 1)
         tinc_test_suite.run(tinc_test_result)
         text = buffer.getvalue()
     self.assertEqual(tinc_test_result.testsRun, 1)
     self.assertEqual(len(tinc_test_result.failures), 0)
     if skip_expected:
         self.assertEqual(len(tinc_test_result.skipped), 1)
     else:
         self.assertEqual(len(tinc_test_result.skipped), 0)
     self.assertEqual(len(tinc_test_result.errors), 0)
コード例 #11
0
    def test_load_test_from_class_name_with_supplementary_sqls(self):
        """Test loadTestsFromName for a class name"""
        test_loader = TINCTestLoader()
        test_suite = test_loader.loadTestsFromName('mpp.models.test.sql_related.test_sql_test_case.MockSQLTestCaseForLoader')
        # 3 tests for 3 sql tests in the current directory. 
        self.assertEquals(len(test_suite._tests), 3)
        for test_case in test_suite._tests:
            if test_case.name == 'MockSQLTestCaseForLoader.test_query03':
                break

        self.assertEqual(test_case.name, "MockSQLTestCaseForLoader.test_query03")
        self.assertEqual(test_case.author, 'balasr3')
        self.assertEqual(test_case.description, 'test sql test case sql')
        self.assertEqual(test_case.created_datetime, datetime.strptime('2012-07-20 12:00:00', '%Y-%m-%d %H:%M:%S'))
        self.assertEqual(test_case.modified_datetime, datetime.strptime('2012-07-20 12:00:02', '%Y-%m-%d %H:%M:%S'))
        self.assertEqual(test_case.tags, set(['orca', 'hashagg', 'executor']))
コード例 #12
0
    def _populate_dict_of_test_tuples(self):
        """
        This hidden method will parse through the log file and find all the tests.
        All the information will be populated in self.dict_of_test_tuples
        """
        # All completed test cases will have the following line:
        # 20140417:08:34:13::[STATUS]::__init__.py:115::pid27994::MainThread:: Finished test: tinctest.test.sample.TINCTestCaseWithDataProviderComplicated.test_with_data_provider_complicated_type1_type6_type3 Result: PASS Duration: 0.39 ms Message: NONE
        re_compiled_object = re.compile(r"Finished test: (.*) Result: (.*) Duration: (.*) ms ")
        
        # We want to gather all of the tests in dict_of_test_tuples
        
        try:
            file_object = open(self.logfile, 'r')
            file_object.close()
        except:
            raise TINCLogFileParserException("Cannot open file %s" % self.logfile)

        tinctest.logger.debug("Parsing file %s" %self.logfile)
        with open(self.logfile, 'r') as file_object:
            for line in file_object:
                line = line.strip()
                if line.find('[STATUS]') == -1:
                    continue
                re_result_object = re_compiled_object.search(line)
                if re_result_object:
                    test_name = re_result_object.group(1)
                    test_result = re_result_object.group(2)
                    test_duration = re_result_object.group(3)
                    test_case_object = TINCTestLoader.findTINCTestFromName(test_name)
                    self.dict_of_test_tuples[test_name] = TINCLogFileParser.test_tuple(result=test_result, duration=test_duration, test_case_object=test_case_object)
コード例 #13
0
 def test_skip_when_tag_in_sql_file(self):
     test_loader = TINCTestLoader()
     test_suite = test_loader.loadTestsFromTestCase(MockSQLTestCaseForSkip)
     test_case = None
     for case in test_suite._tests:
         if case.name == "MockSQLTestCaseForSkip.test_query01":
             test_case = case
     self.assertNotEqual(test_case, None)
     self.assertEqual(test_case.name, "MockSQLTestCaseForSkip.test_query01")
     with closing(_WritelnDecorator(StringIO())) as buffer:
         test_result = TINCTextTestResult(buffer, True, 1)
         test_case.run(test_result)
     self.assertEqual(test_result.testsRun, 1)
     self.assertEqual(len(test_result.failures), 0)
     self.assertEqual(len(test_result.skipped), 1)
     self.assertEqual(len(test_result.errors), 0)
コード例 #14
0
    def test_load_test_from_class_name(self):
        """Test loadTestsFromName for a class name"""
        test_loader = TINCTestLoader()
        test_suite = test_loader.loadTestsFromName('mpp.models.test.sql_related.test_sql_test_case.MockSQLTestCaseForLoader')
        test_case = None
        for my_test_case in test_suite._tests:
            if my_test_case.name == 'MockSQLTestCaseForLoader.test_query01':
                test_case = my_test_case
                break

        self.assertTrue(test_case is not None)
        self.assertEqual(test_case.name, "MockSQLTestCaseForLoader.test_query01")
        self.assertEqual(test_case.author, 'lammin')
        self.assertEqual(test_case.description, 'test sql test case')
        self.assertEqual(test_case.created_datetime, datetime.strptime('2012-07-20 12:00:00', '%Y-%m-%d %H:%M:%S'))
        self.assertEqual(test_case.modified_datetime, datetime.strptime('2012-07-20 12:00:02', '%Y-%m-%d %H:%M:%S'))
        self.assertEqual(test_case.tags, set(['orca', 'hashagg', 'executor']))
コード例 #15
0
 def test_load_implicit_python_from_name(self):
     """Test loadTestsFromName for a dynamically generated sql test method"""
     test_loader = TINCTestLoader()
     test_suite = test_loader.loadTestsFromName(
         'mpp.models.test.sql_related.test_sql_test_case.MockSQLTestCaseForLoader.test_query01'
     )
     test_case = test_suite._tests[0]
     self.assertEqual(test_case.name,
                      "MockSQLTestCaseForLoader.test_query01")
     self.assertEqual(test_case.author, 'lammin')
     self.assertEqual(test_case.description, 'test sql test case')
     self.assertEqual(
         test_case.created_datetime,
         datetime.strptime('2012-07-20 12:00:00', '%Y-%m-%d %H:%M:%S'))
     self.assertEqual(
         test_case.modified_datetime,
         datetime.strptime('2012-07-20 12:00:02', '%Y-%m-%d %H:%M:%S'))
     self.assertEqual(test_case.tags, set(['orca', 'hashagg', 'executor']))
コード例 #16
0
 def test_templates_regular_sql(self):
     """Test loadTestsFromName for a dynamically generated sql test method."""
     test_loader = TINCTestLoader()
     test_suite = test_loader.loadTestsFromName(
         'mpp.models.test.sql_related.test_sql_test_case.MockSQLTemplateTestCaseRegular.test_query01'
     )
     test_case = test_suite._tests[0]
     # Non-template test case should work as is...
     self.assertEqual(test_case.name,
                      "MockSQLTemplateTestCaseRegular.test_query01")
     self.assertEqual(test_case.author, 'lammin')
     self.assertEqual(test_case.description, 'test sql test case')
     self.assertEqual(
         test_case.created_datetime,
         datetime.strptime('2012-07-20 12:00:00', '%Y-%m-%d %H:%M:%S'))
     self.assertEqual(
         test_case.modified_datetime,
         datetime.strptime('2012-07-20 12:00:02', '%Y-%m-%d %H:%M:%S'))
     self.assertEqual(test_case.tags, set(['orca', 'hashagg', 'executor']))
コード例 #17
0
    def test_templates_template_sql_file(self):
        """Test loadTestsFromName for a dynamically generated sql template test method."""
        test_loader = TINCTestLoader()
        test_suite = test_loader.loadTestsFromName(
            'mpp.models.test.sql_related.test_sql_test_case.MockSQLTemplateTestCaseExplicit.test_template_query04'
        )
        test_case = test_suite._tests[0]
        # Template test case should work as if it is non-template test case...
        self.assertEqual(
            test_case.name,
            "MockSQLTemplateTestCaseExplicit.test_template_query04")
        self.assertEqual(test_case.author, 'shahn17')
        self.assertEqual(test_case.description, 'template test case')

        sql_file_path = os.path.join(test_case.get_out_dir(),
                                     "MockSQLTemplateTestCaseExplicit",
                                     "template_query04.sql")
        ans_file_path = os.path.join(test_case.get_out_dir(),
                                     "MockSQLTemplateTestCaseExplicit",
                                     "template_query04.ans")
        original_sql_file_path = os.path.join(
            os.path.dirname(
                sys.modules[test_case.__class__.__module__].__file__),
            test_case.__class__.sql_dir, test_case.__class__.template_dir,
            "query04.sql")
        original_ans_file_path = os.path.join(
            os.path.dirname(
                sys.modules[test_case.__class__.__module__].__file__),
            test_case.__class__.ans_dir, test_case.__class__.template_dir,
            "query04.ans")
        self.assertEqual(test_case.sql_file, sql_file_path)
        self.assertEqual(test_case.ans_file, ans_file_path)
        self.assertEqual(test_case._original_sql_file, original_sql_file_path)
        self.assertEqual(test_case._original_ans_file, original_ans_file_path)
        self.assertTrue(os.path.exists(test_case.sql_file))
        self.assertTrue(os.path.exists(test_case.ans_file))
        self.assertTrue(os.path.exists(test_case._original_sql_file))
        self.assertTrue(os.path.exists(test_case._original_ans_file))
        # Cleanup
        dir_path = os.path.join(test_case.get_out_dir(),
                                "MockSQLTemplateTestCaseExplicit")
        self.assertTrue(os.path.exists(dir_path))
        shutil.rmtree(dir_path)
コード例 #18
0
 def run_test(
     self,
     method_name,
     skip_expected,
     test_case_prefix='tinctest.test.test_version_check.MockTINCTestCaseWithGetVersion'
 ):
     loader = TINCTestLoader()
     tinc_test_suite = loader.loadTestsFromName(
         '%s.%s' % (test_case_prefix, method_name), dryrun=True)
     with closing(_WritelnDecorator(StringIO())) as buffer:
         tinc_test_result = tinctest.TINCTextTestResult(buffer, True, 1)
         tinc_test_suite.run(tinc_test_result)
         text = buffer.getvalue()
     self.assertEqual(tinc_test_result.testsRun, 1)
     self.assertEqual(len(tinc_test_result.failures), 0)
     if skip_expected:
         self.assertEqual(len(tinc_test_result.skipped), 1)
     else:
         self.assertEqual(len(tinc_test_result.skipped), 0)
     self.assertEqual(len(tinc_test_result.errors), 0)
コード例 #19
0
    def test_load_test_from_class_name_with_supplementary_sqls(self):
        """Test loadTestsFromName for a class name"""
        test_loader = TINCTestLoader()
        test_suite = test_loader.loadTestsFromName(
            'mpp.models.test.sql_related.test_sql_test_case.MockSQLTestCaseForLoader'
        )
        # 3 tests for 3 sql tests in the current directory.
        self.assertEquals(len(test_suite._tests), 3)
        for test_case in test_suite._tests:
            if test_case.name == 'MockSQLTestCaseForLoader.test_query03':
                break

        self.assertEqual(test_case.name,
                         "MockSQLTestCaseForLoader.test_query03")
        self.assertEqual(test_case.author, 'balasr3')
        self.assertEqual(test_case.description, 'test sql test case sql')
        self.assertEqual(
            test_case.created_datetime,
            datetime.strptime('2012-07-20 12:00:00', '%Y-%m-%d %H:%M:%S'))
        self.assertEqual(
            test_case.modified_datetime,
            datetime.strptime('2012-07-20 12:00:02', '%Y-%m-%d %H:%M:%S'))
        self.assertEqual(test_case.tags, set(['orca', 'hashagg', 'executor']))
コード例 #20
0
    def test_load_test_from_class_name(self):
        """Test loadTestsFromName for a class name"""
        test_loader = TINCTestLoader()
        test_suite = test_loader.loadTestsFromName(
            'mpp.models.test.sql_related.test_sql_test_case.MockSQLTestCaseForLoader'
        )
        test_case = None
        for my_test_case in test_suite._tests:
            if my_test_case.name == 'MockSQLTestCaseForLoader.test_query01':
                test_case = my_test_case
                break

        self.assertTrue(test_case is not None)
        self.assertEqual(test_case.name,
                         "MockSQLTestCaseForLoader.test_query01")
        self.assertEqual(test_case.author, 'lammin')
        self.assertEqual(test_case.description, 'test sql test case')
        self.assertEqual(
            test_case.created_datetime,
            datetime.strptime('2012-07-20 12:00:00', '%Y-%m-%d %H:%M:%S'))
        self.assertEqual(
            test_case.modified_datetime,
            datetime.strptime('2012-07-20 12:00:02', '%Y-%m-%d %H:%M:%S'))
        self.assertEqual(test_case.tags, set(['orca', 'hashagg', 'executor']))
コード例 #21
0
    def test_templates_all_files(self):
        """Test loadTestsFromName for a class name"""
        test_loader = TINCTestLoader()
        test_suite = test_loader.loadTestsFromName(
            'mpp.models.test.sql_related.test_sql_test_case.MockSQLTemplateTestCase'
        )
        # 5 tests for 3 sql files in the current directory, and 2 sql files in the template directory
        self.assertEquals(len(test_suite._tests), 5)
        for test_case in test_suite._tests:
            if test_case.name == 'MockSQLTemplateTestCase.test_template_query04':
                break

        self.assertEqual(test_case.name,
                         "MockSQLTemplateTestCase.test_template_query04")
        self.assertEqual(test_case.author, 'shahn17')
        self.assertEqual(test_case.description, 'template test case')

        sql_file_path = os.path.join(test_case.get_out_dir(),
                                     "MockSQLTemplateTestCase",
                                     "template_query04.sql")
        ans_file_path = os.path.join(test_case.get_out_dir(),
                                     "MockSQLTemplateTestCase",
                                     "template_query04.ans")
        original_sql_file_path = os.path.join(
            os.path.dirname(
                sys.modules[test_case.__class__.__module__].__file__),
            test_case.__class__.sql_dir, test_case.__class__.template_dir,
            "query04.sql")
        original_ans_file_path = os.path.join(
            os.path.dirname(
                sys.modules[test_case.__class__.__module__].__file__),
            test_case.__class__.ans_dir, test_case.__class__.template_dir,
            "query04.ans")
        self.assertEqual(test_case.sql_file, sql_file_path)
        self.assertEqual(test_case.ans_file, ans_file_path)
        self.assertEqual(test_case._original_sql_file, original_sql_file_path)
        self.assertEqual(test_case._original_ans_file, original_ans_file_path)
        self.assertTrue(os.path.exists(test_case.sql_file))
        self.assertTrue(os.path.exists(test_case.ans_file))
        self.assertTrue(os.path.exists(test_case._original_sql_file))
        self.assertTrue(os.path.exists(test_case._original_ans_file))

        # Template test case sql file should exists
        sql_file_path = os.path.join(test_case.get_out_dir(),
                                     "MockSQLTemplateTestCase",
                                     "template_query04.sql")
        self.assertTrue(os.path.exists(sql_file_path))
        sql_file_data = None
        with open(sql_file_path, 'r') as sql_file_object:
            sql_file_data = sql_file_object.read()
        self.assertTrue(sql_file_data is not None)
        # Correct substitution
        self.assertTrue('my_percent' in sql_file_data)
        # Error in python code
        self.assertTrue('my_at@' in sql_file_data)
        # Error in sql template
        self.assertTrue('&AMP' in sql_file_data)

        # Template test case ans file should exists
        ans_file_path = os.path.join(test_case.get_out_dir(),
                                     "MockSQLTemplateTestCase",
                                     "template_query05.ans")
        self.assertTrue(os.path.exists(ans_file_path))
        ans_file_data = None
        with open(ans_file_path, 'r') as sql_file_object:
            ans_file_data = sql_file_object.read()
        self.assertTrue(ans_file_data is not None)
        # Correct substitution
        self.assertTrue('my_percent' in ans_file_data)
        # Error in python code
        self.assertTrue('my_at@' in ans_file_data)
        # Error in ans template
        self.assertTrue('&AMP' in ans_file_data)

        # Cleanup
        dir_path = os.path.join(test_case.get_out_dir(),
                                "MockSQLTemplateTestCase")
        self.assertTrue(os.path.exists(dir_path))
        shutil.rmtree(dir_path)
コード例 #22
0
 def test_explicit_test_fixtures_through_loading(self):
     test_loader = TINCTestLoader()
     test_suite = test_loader.loadTestsFromTestCase(MockSQLTestCase)
     # 4 tests for 3 sqls in the directory and 1 explicit test method
     self.assertEqual(test_suite.countTestCases(), 4)
コード例 #23
0
 def test_explicit_test_fixtures_through_loading(self):
     test_loader = TINCTestLoader()
     test_suite = test_loader.loadTestsFromTestCase(MockSQLTestCase)
     # 4 tests for 3 sqls in the directory and 1 explicit test method
     self.assertEqual(test_suite.countTestCases(), 4)