예제 #1
0
    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)
예제 #2
0
 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)
예제 #3
0
    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']))
예제 #4
0
    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')
예제 #5
0
    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)
예제 #6
0
    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)
예제 #7
0
    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')
예제 #8
0
    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)
예제 #9
0
 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)
예제 #10
0
 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)
예제 #11
0
 def test_get_default_test_name(self):
     self.assertEqual(CompileTags.get_default_test_name(self.__class__), 'CompileTagsTestsTests')