def test_process_ut_method_blank_name(self): gen = CompileTags(source_module_name='sample.py') gen.process_unit_test(test_name='', context=self.__class__) ut_module = _test_module_details['sample'] ut_class = ut_module.class_list['sampleTests'] self.assertTrue('CompileTagsTestsTests' in ut_class.method_names)
def test_push_modules_and_classes(self): modules = ['sample', 'a_name'] test_classes = ['sampleTests', 'a_class_name'] gen = CompileTags(source_module_name='sample') gen.push_modules_and_classes(modules=['a_name'], test_classes=test_classes, context=self) self.assertEqual(gen.unit_test_module, modules) self.assertEqual(gen.unit_test_class, test_classes)
def test_compile(self): # This sets up the environment as if we had run with "python tddtags/gen.py" with mock.patch('tddtags.core.CompileTags.handle_context', spec=True): gen = CompileTags(source_module_name='sample') ret = gen.compile() self.assertTrue(ret, 'Compile returned False') self.assertEqual(gen.handle_context.call_count, 1) parm_info = [('target', 0), ('parent_context', 1)] kwargs = self.get_patched_call_parms(parm_info, gen.handle_context.call_args_list, 0) self.assertTrue(inspect.ismodule(kwargs['target']))
def test_iterate_child_list(self): with mock.patch('tddtags.core.CompileTags.handle_context', spec=True): gen = CompileTags(source_module_name='Sample.py') child_list = [('name1', 'entity1'), ('name2', 'entity2')] gen.iterate_child_list(children=child_list, context='some_context') # print gen.handle_context.call_args_list self.assertEqual(gen.handle_context.call_count, len(child_list)) target, context = self.get_handle_context_parms(gen.handle_context.call_args_list, 0) self.assertEqual(target, 'entity1') self.assertEqual(context, 'some_context')
def test_handle_context(self): with mock.patch('tddtags.core.CompileTags.iterate_child_list', spec=True): gen = CompileTags(source_module_name='Sample.py') gen.unit_test_module.append('sample') gen.unit_test_class.append('SampleTests') target = imp.load_source('sample', 'tddtags/sample.py') child_classes = inspect.getmembers(target, inspect.isclass) clazz = [clazz for name, clazz in child_classes if name == 'ChildSample'][0] gen.handle_context(target=clazz, parent_context=target) # --> Expecting 1 unit test items self.assertEqual(gen.iterate_child_list.call_count, 1)
def test_pop_module_and_class(self): modules = ['sample', 'a_name'] test_classes = ['sampleTests', 'a_class_name'] gen = CompileTags(source_module_name='sample.py') # --> First push gen.push_modules_and_classes(modules=modules, test_classes=test_classes, context=self) self.assertEqual(gen.unit_test_module, modules) self.assertEqual(gen.unit_test_class, test_classes) # --> Then test pop gen.pop_module_and_class(modules=modules, test_classes=test_classes) self.assertEqual(len(gen.unit_test_module), 1) self.assertEqual(len(gen.unit_test_class), 1)
def test_handle_context_full(self): gen = CompileTags(source_module_name='Sample.py') gen.unit_test_module.append('sample') gen.unit_test_class.append('SampleTests') target = imp.load_source('sample', 'tddtags/sample.py') child_classes = inspect.getmembers(target, inspect.isclass) clazz = [clazz for name, clazz in child_classes if name == 'ChildSample'][0] gen.handle_context(target=clazz, parent_context=target) keys = _test_module_details.keys() self.assertTrue(keys) module_details = _test_module_details[keys[0]] self.assertEqual(module_details.module_name, 'sample') self.assertEqual(len(module_details.class_list), 1) # print ".class_list: ", module_details.class_list the_class = module_details.class_list['ChildSampleTests'] self.assertEqual(the_class.class_name, 'ChildSampleTests') self.assertEqual(the_class.method_names[0], 'eat_more_chocolate')
def test_extract_keywords(self): keywords = CompileTags.extract_keywords(docstrings=self.__doc__) self.assertTrue(keywords) self.assertEqual(len(keywords), 5, keywords) kw = [ ('unit_test_module', 'some_module'), ('unit_test_class', 'SomeClass'), ('unit_test', 'a_feature'), ('unit_test', 'another_feature'), ('unit_test', '') ] self.assertEqual(keywords, kw)
def test_process_ut_method_no_context(self): gen = CompileTags(source_module_name='sample.py') gen.process_unit_test(test_name='some_test', context=None)
def test_get_default_test_name_no_context(self): """Verify that get_default_test_name raises if context is blank or invalid""" self.assertEqual(CompileTags.get_default_test_name(self.__class__), 'CompileTagsTestsTests') self.assertRaises(AttributeError, CompileTags.get_default_test_name, None)
def test_get_default_test_name(self): self.assertEqual(CompileTags.get_default_test_name(self.__class__), 'CompileTagsTestsTests')