コード例 #1
0
    def loadTestsFromModule(self, module):
        """Load tests from module.

        Fires :func:`loadTestsFromModule` hook.

        """
        evt = events.LoadFromModuleEvent(self, module)
        result = self.session.hooks.loadTestsFromModule(evt)
        if evt.handled:
            suite = result or self.suiteClass()
        else:
            suite = self.suiteClass(evt.extraTests)
        filterevt = events.ModuleSuiteEvent(self, module, suite)
        result = self.session.hooks.moduleLoadedSuite(filterevt)
        if result:
            return result or self.suiteClass()
        return filterevt.suite
コード例 #2
0
    def test_can_load_tests_from_generator_methods(self):
        class Mod(object):
            pass

        def check(x):
            return x == 1

        class Test(TestCase):
            def test(self):
                yield check, 1
                yield check, 2

        m = Mod()
        m.Test = Test
        event = events.LoadFromModuleEvent(self.loader, m)
        self.session.hooks.loadTestsFromModule(event)
        self.assertEqual(len(event.extraTests), 1)
        self.assertEqual(len(event.extraTests[0]._tests), 2)
コード例 #3
0
ファイル: test_params_plugin.py プロジェクト: dlai0001/nose2
    def test_can_load_tests_from_parameterized_functions(self):
        class Mod(object):
            __name__ = 'themod'

        def check(x):
            assert x == 1

        @params(1, 2)
        def test(a):
            check(a)

        m = Mod()
        m.test = test
        test.__module__ = m.__name__
        event = events.LoadFromModuleEvent(self.loader, m)
        self.session.hooks.loadTestsFromModule(event)
        self.assertEqual(len(event.extraTests), 2)
        # check that test names are sensible
        self.assertEqual(util.test_name(event.extraTests[0]), 'themod.test:1')
        self.assertEqual(util.test_name(event.extraTests[1]), 'themod.test:2')
コード例 #4
0
    def test_can_load_tests_from_generator_functions(self):
        class Mod(object):
            __name__ = "themod"

        def check(x):
            assert x == 1

        def test():
            yield check, 1
            yield check, 2

        m = Mod()
        m.test = test
        test.__module__ = m.__name__
        event = events.LoadFromModuleEvent(self.loader, m)
        self.session.hooks.loadTestsFromModule(event)
        self.assertEqual(len(event.extraTests), 2)
        # check that test names are sensible
        self.assertEqual(util.test_name(event.extraTests[0]), "themod.test:1")
        self.assertEqual(util.test_name(event.extraTests[1]), "themod.test:2")
コード例 #5
0
ファイル: test_params_plugin.py プロジェクト: dlai0001/nose2
    def test_can_load_tests_from_parameterized_methods(self):
        class Mod(object):
            __name__ = 'themod'

        class Test(TestCase):
            @params(1, 2)
            def test(self, a):
                assert a == 1

        m = Mod()
        m.Test = Test
        Test.__module__ = m.__name__
        event = events.LoadFromModuleEvent(self.loader, m)
        self.session.hooks.loadTestsFromModule(event)
        self.assertEqual(len(event.extraTests), 1)
        self.assertEqual(len(event.extraTests[0]._tests), 2)
        # check that test names are sensible
        self.assertEqual(util.test_name(event.extraTests[0]._tests[0]),
                         'themod.Test.test:1')
        self.assertEqual(util.test_name(event.extraTests[0]._tests[1]),
                         'themod.Test.test:2')
コード例 #6
0
ファイル: test_params_plugin.py プロジェクト: nose-devs/nose2
    def test_can_load_tests_from_parameterized_by_cartesian_params_functions(
            self):
        class Mod(object):
            __name__ = "themod"

        def check(x, y):
            assert x == y

        @cartesian_params((1, 2), (2, 3))
        def test(a, b):
            check(a, b)

        m = Mod()
        m.test = test
        test.__module__ = m.__name__
        event = events.LoadFromModuleEvent(self.loader, m)
        self.session.hooks.loadTestsFromModule(event)
        self.assertEqual(len(event.extraTests), 4)
        # check that test names are sensible
        self.assertEqual(util.test_name(event.extraTests[0]), "themod.test:1")
        self.assertEqual(util.test_name(event.extraTests[1]), "themod.test:2")
        self.assertEqual(util.test_name(event.extraTests[2]), "themod.test:3")
        self.assertEqual(util.test_name(event.extraTests[3]), "themod.test:4")
コード例 #7
0
 def test_params_test_name_correct(self):
     # param test loading is a bit more complex than generator
     # loading. XXX -- can these be reconciled so they both
     # support exclude and also both support loadTestsFromTestCase?
     plug1 = parameters.Parameters(session=self.session)
     plug1.register()
     plug2 = testcases.TestCaseLoader(session=self.session)
     plug2.register()
     # need module to fire top-level event
     class Mod(object):
         pass
     m = Mod()
     m.Test = self.case
     event = events.LoadFromModuleEvent(self.loader, m)
     self.session.hooks.loadTestsFromModule(event)
     for case in event.extraTests:
         case(self.result)
     xml = self.plugin.tree.findall('testcase')
     self.assertEqual(len(xml), 10)
     params = [x for x in xml if x.get('name').startswith('test_params')]
     self.assertEqual(len(params), 3)
     self.assertEqual(params[0].get('name'), 'test_params:1')
     self.assertEqual(params[1].get('name'), 'test_params:2')
     self.assertEqual(params[2].get('name'), 'test_params:3')
コード例 #8
0
    def test_params_test_full_name_correct(self):
        plug1 = parameters.Parameters(session=self.session)
        plug1.register()
        plug2 = testcases.TestCaseLoader(session=self.session)
        plug2.register()
        # need module to fire top-level event

        class Mod(object):
            pass

        m = Mod()
        m.Test = self.case
        event = events.LoadFromModuleEvent(self.loader, m)
        self.plugin.test_fullname = True
        self.session.hooks.loadTestsFromModule(event)
        for case in event.extraTests:
            case(self.result)
        xml = self.plugin.tree.findall('testcase')
        self.assertEqual(len(xml), 13)
        params = [x for x in xml if x.get('name').startswith('test_params')]
        self.assertEqual(len(params), 3)
        self.assertEqual(params[0].get('name'), 'test_params:1 (1)')
        self.assertEqual(params[1].get('name'), 'test_params:2 (2)')
        self.assertEqual(params[2].get('name'), 'test_params:3 (3)')
コード例 #9
0
ファイル: test_loader.py プロジェクト: Carter0/learningPython
 def test_load_from_module_calls_hook(self):
     self.session.hooks.register('loadTestsFromModule', FakePlugin())
     evt = events.LoadFromModuleEvent(self.loader, 'some_module')
     self.session.hooks.loadTestsFromModule(evt)
     self.assertTrue(evt.fakeLoadFromModule,
                     "FakePlugin.loadTestsFromModule() was not called")