aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/trial/test/test_test_visitor.py
blob: b5c3484e49b4752a0a4f78d6a771f1eec720ff75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
from twisted.trial import unittest
from twisted.trial.runner import TestSuite, suiteVisit

pyunit = __import__('unittest')



class MockVisitor(object):
    def __init__(self):
        self.calls = []


    def __call__(self, testCase):
        self.calls.append(testCase)



class TestTestVisitor(unittest.TestCase):
    def setUp(self):
        self.visitor = MockVisitor()


    def test_visitCase(self):
        """
        Test that C{visit} works for a single test case.
        """
        testCase = TestTestVisitor('test_visitCase')
        testCase.visit(self.visitor)
        self.assertEqual(self.visitor.calls, [testCase])


    def test_visitSuite(self):
        """
        Test that C{visit} hits all tests in a suite.
        """
        tests = [TestTestVisitor('test_visitCase'),
                 TestTestVisitor('test_visitSuite')]
        testSuite = TestSuite(tests)
        testSuite.visit(self.visitor)
        self.assertEqual(self.visitor.calls, tests)


    def test_visitEmptySuite(self):
        """
        Test that C{visit} on an empty suite hits nothing.
        """
        TestSuite().visit(self.visitor)
        self.assertEqual(self.visitor.calls, [])


    def test_visitNestedSuite(self):
        """
        Test that C{visit} recurses through suites.
        """
        tests = [TestTestVisitor('test_visitCase'),
                 TestTestVisitor('test_visitSuite')]
        testSuite = TestSuite([TestSuite([test]) for test in tests])
        testSuite.visit(self.visitor)
        self.assertEqual(self.visitor.calls, tests)


    def test_visitPyunitSuite(self):
        """
        Test that C{suiteVisit} visits stdlib unittest suites
        """
        test = TestTestVisitor('test_visitPyunitSuite')
        suite = pyunit.TestSuite([test])
        suiteVisit(suite, self.visitor)
        self.assertEqual(self.visitor.calls, [test])


    def test_visitPyunitCase(self):
        """
        Test that a stdlib test case in a suite gets visited.
        """
        class PyunitCase(pyunit.TestCase):
            def test_foo(self):
                pass
        test = PyunitCase('test_foo')
        TestSuite([test]).visit(self.visitor)
        self.assertEqual(
            [call.id() for call in self.visitor.calls], [test.id()])