Пример #1
0
    def test_flatten_nested_suites(self):
        sys.path.append(support_file('scenario/slow'))
        import test_slow as mod

        suite = unittest.TestSuite()
        suite.addTest(mod.TestSlow('test_ok'))
        suite.addTest(mod.TestSlow('test_fail'))
        suite.addTest(mod.TestSlow('test_err'))

        suite2 = unittest.TestSuite()
        suite2.addTest(suite)

        flat = list(self.plugin._flatten(suite2))
        self.assertEqual(len(flat), 3)
Пример #2
0
    def test_simple_layer_inheritance(self):
        class L1(object):
            pass

        class L2(L1):
            pass

        class T1(unittest.TestCase):
            layer = L1

            def test(self):
                pass

        class T2(unittest.TestCase):
            layer = L2

            def test(self):
                pass

        suite = unittest.TestSuite([T2('test'), T1('test')])
        event = events.StartTestRunEvent(None, suite, None, 0, None)
        self.plugin.startTestRun(event)
        expect = [[
            'test (nose2.tests.unit.test_layers_plugin.T1)',
            ['test (nose2.tests.unit.test_layers_plugin.T2)']
        ]]
        self.assertEqual(self.names(event.suite), expect)
Пример #3
0
    def test_mixed_layers_no_layers(self):
        class L1(object):
            pass

        class L2(L1):
            pass

        class T1(unittest.TestCase):
            layer = L1

            def test(self):
                pass

        class T2(unittest.TestCase):
            layer = L2

            def test(self):
                pass

        class T3(unittest.TestCase):
            def test(self):
                pass

        suite = unittest.TestSuite([T2('test'), T1('test'), T3('test')])
        event = events.StartTestRunEvent(None, suite, None, 0, None)
        self.plugin.startTestRun(event)
        expect = self._listset([
            'test (nose2.tests.unit.test_layers_plugin.T3)',
            [
                'test (nose2.tests.unit.test_layers_plugin.T1)',
                ['test (nose2.tests.unit.test_layers_plugin.T2)']
            ]
        ])
        self.assertEqual(self.names(event.suite), expect)
Пример #4
0
    def test_mixin_in_inner_layer(self):
        class M1(object):
            pass

        class L1(object):
            pass

        class L2(L1):
            mixins = (M1, )

        class T1(unittest.TestCase):
            layer = L1

            def test(self):
                pass

        class T2(unittest.TestCase):
            layer = L2

            def test(self):
                pass

        suite = unittest.TestSuite([T1('test'), T2('test')])
        event = events.StartTestRunEvent(None, suite, None, 0, None)
        self.plugin.startTestRun(event)
        expect = [  # L1
            [
                'test (nose2.tests.unit.test_layers_plugin.T1)',
                # M1
                [  # L2
                    ['test (nose2.tests.unit.test_layers_plugin.T2)']
                ]
            ]
        ]
        self.assertEqual(self.names(event.suite), expect)
Пример #5
0
    def test_flatten_respects_module_fixtures(self):
        sys.path.append(support_file('scenario/module_fixtures'))
        import test_mf_testcase as mod

        suite = unittest.TestSuite()
        suite.addTest(mod.Test('test_1'))
        suite.addTest(mod.Test('test_2'))

        flat = list(self.plugin._flatten(suite))
        self.assertEqual(flat, ['test_mf_testcase'])
Пример #6
0
    def test_flatten_respects_class_fixtures(self):
        sys.path.append(support_file('scenario/class_fixtures'))
        import test_cf_testcase as mod

        suite = unittest.TestSuite()
        suite.addTest(mod.Test('test_1'))
        suite.addTest(mod.Test('test_2'))
        suite.addTest(mod.Test2('test_1'))
        suite.addTest(mod.Test2('test_2'))
        suite.addTest(mod.Test3('test_3'))

        flat = list(self.plugin._flatten(suite))
        self.assertEqual(flat, ['test_cf_testcase.Test2.test_1',
                                'test_cf_testcase.Test2.test_2',
                                'test_cf_testcase.Test',
                                'test_cf_testcase.Test3',
                                ])
Пример #7
0
    def test_invalid_top_layer(self):

        if sys.version_info >= (3, 0):
            # in python 3, L1 will automatically have `object` has base, so
            # this test does not make sense, and will actually fail.
            return

        class L1():
            pass

        class T1(unittest.TestCase):
            layer = L1

            def test(self):
                pass

        suite = unittest.TestSuite([T1('test')])
        event = events.StartTestRunEvent(None, suite, None, 0, None)
        with self.assertRaises(exceptions.LoadTestsFailure):
            self.plugin.startTestRun(event)
Пример #8
0
    def test_deep_inheritance(self):
        class L1(object):
            pass

        class L2(L1):
            pass

        class L3(L1):
            pass

        class L4(L2, L1):
            pass

        class L5(L4):
            pass

        class T1(unittest.TestCase):
            layer = L1

            def test(self):
                pass

        class T2(unittest.TestCase):
            layer = L2

            def test(self):
                pass

        class T3(unittest.TestCase):
            layer = L3

            def test(self):
                pass

        class T4(unittest.TestCase):
            layer = L4

            def test(self):
                pass

        class T5(unittest.TestCase):
            layer = L5

            def test(self):
                pass

        suite = unittest.TestSuite(
            [T2('test'),
             T1('test'),
             T3('test'),
             T4('test'),
             T5('test')])
        event = events.StartTestRunEvent(None, suite, None, 0, None)
        self.plugin.startTestRun(event)
        expect = [[
            'test (nose2.tests.unit.test_layers_plugin.T1)',
            [
                'test (nose2.tests.unit.test_layers_plugin.T2)',
                [
                    'test (nose2.tests.unit.test_layers_plugin.T4)',
                    ['test (nose2.tests.unit.test_layers_plugin.T5)']
                ]
            ], ['test (nose2.tests.unit.test_layers_plugin.T3)']
        ]]
        self.assertEqual(self.names(event.suite), expect)
Пример #9
0
    def test_mixin_inheritance(self):
        class L1(object):
            pass

        class L2(object):  # a mixin, doesn't share a base w/L1
            pass

        class L3(L1):
            pass

        class L4(L3):
            pass

        class L5(L4):
            pass

        class L6(L2):
            mixins = (L4, )

        class T1(unittest.TestCase):
            layer = L1

            def test(self):
                pass

        class T3(unittest.TestCase):
            layer = L3

            def test(self):
                pass

        class T4(unittest.TestCase):
            layer = L4

            def test(self):
                pass

        class T5(unittest.TestCase):
            layer = L5

            def test(self):
                pass

        class T6(unittest.TestCase):
            layer = L6

            def test(self):
                pass

        suite = unittest.TestSuite(
            [T6('test'),
             T1('test'),
             T3('test'),
             T4('test'),
             T5('test')])
        event = events.StartTestRunEvent(None, suite, None, 0, None)
        self.plugin.startTestRun(event)
        expect = [[
            'test (nose2.tests.unit.test_layers_plugin.T1)',
            [
                'test (nose2.tests.unit.test_layers_plugin.T3)',
                [
                    'test (nose2.tests.unit.test_layers_plugin.T4)',
                    [['test (nose2.tests.unit.test_layers_plugin.T6)']],
                    [
                        'test (nose2.tests.unit.test_layers_plugin.T5)',
                    ]
                ]
            ]
        ]]
        self.assertEqual(self.names(event.suite), expect)
Пример #10
0
    def test_mixin_inheritance(self):
        # without mixin
        # L1
        #  -> L3
        #   -> L4
        #    -> L5
        # L2
        #  -> L6
        #
        # with mixin new behavior:
        #   the mixin (L4, which comes with L3 and L1)
        #   is inserted after the parent layer (L2).
        # L2
        #  -> L1
        #   -> L3
        #    -> L4
        #     -> L6
        #     -> L5
        #
        # with mixin old behavior
        #   the mixin (L4, which comes with L3 and L1)
        #   is inserted before the parent layer (L2).
        # L1
        #  -> L3
        #   -> L4
        #    -> L2
        #     -> L6
        #    -> L5
        class L1(object):
            pass

        class L2(object):  # a mixin, doesn't share a base w/L1
            pass

        class L3(L1):
            pass

        class L4(L3):
            pass

        class L5(L4):
            pass

        class L6(L2):
            mixins = (L4, )

        class T1(unittest.TestCase):
            layer = L1

            def test(self):
                pass

        class T3(unittest.TestCase):
            layer = L3

            def test(self):
                pass

        class T4(unittest.TestCase):
            layer = L4

            def test(self):
                pass

        class T5(unittest.TestCase):
            layer = L5

            def test(self):
                pass

        class T6(unittest.TestCase):
            layer = L6

            def test(self):
                pass

        suite = unittest.TestSuite(
            [T6('test'),
             T1('test'),
             T3('test'),
             T4('test'),
             T5('test')])
        event = events.StartTestRunEvent(None, suite, None, 0, None)
        self.plugin.startTestRun(event)
        expect = [  # L2
            [  # L1
                [
                    'test (nose2.tests.unit.test_layers_plugin.T1)',  # T1
                    # L3
                    [
                        'test (nose2.tests.unit.test_layers_plugin.T3)',  # T3
                        # L4
                        [
                            'test (nose2.tests.unit.test_layers_plugin.T4)',  # T4
                            # L5
                            ['test (nose2.tests.unit.test_layers_plugin.T5)'],
                            # L6
                            ['test (nose2.tests.unit.test_layers_plugin.T6)']
                        ]
                    ]
                ]
            ]
        ]
        self.assertEqual(self.names(event.suite), expect)