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)
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('&' 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('&' 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)
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']))
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']))
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)
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']))
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']))
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']))
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)
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']))
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)
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']))
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']))
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('&' 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('&' 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)