1 | import unittest
|
---|
2 |
|
---|
3 |
|
---|
4 | class TestHashing(object):
|
---|
5 | """Used as a mixin for TestCase"""
|
---|
6 |
|
---|
7 | # Check for a valid __hash__ implementation
|
---|
8 | def test_hash(self):
|
---|
9 | for obj_1, obj_2 in self.eq_pairs:
|
---|
10 | try:
|
---|
11 | if not hash(obj_1) == hash(obj_2):
|
---|
12 | self.fail("%r and %r do not hash equal" % (obj_1, obj_2))
|
---|
13 | except KeyboardInterrupt:
|
---|
14 | raise
|
---|
15 | except Exception, e:
|
---|
16 | self.fail("Problem hashing %r and %r: %s" % (obj_1, obj_2, e))
|
---|
17 |
|
---|
18 | for obj_1, obj_2 in self.ne_pairs:
|
---|
19 | try:
|
---|
20 | if hash(obj_1) == hash(obj_2):
|
---|
21 | self.fail("%s and %s hash equal, but shouldn't" %
|
---|
22 | (obj_1, obj_2))
|
---|
23 | except KeyboardInterrupt:
|
---|
24 | raise
|
---|
25 | except Exception, e:
|
---|
26 | self.fail("Problem hashing %s and %s: %s" % (obj_1, obj_2, e))
|
---|
27 |
|
---|
28 |
|
---|
29 | class TestEquality(object):
|
---|
30 | """Used as a mixin for TestCase"""
|
---|
31 |
|
---|
32 | # Check for a valid __eq__ implementation
|
---|
33 | def test_eq(self):
|
---|
34 | for obj_1, obj_2 in self.eq_pairs:
|
---|
35 | self.assertEqual(obj_1, obj_2)
|
---|
36 | self.assertEqual(obj_2, obj_1)
|
---|
37 |
|
---|
38 | # Check for a valid __ne__ implementation
|
---|
39 | def test_ne(self):
|
---|
40 | for obj_1, obj_2 in self.ne_pairs:
|
---|
41 | self.assertNotEqual(obj_1, obj_2)
|
---|
42 | self.assertNotEqual(obj_2, obj_1)
|
---|
43 |
|
---|
44 |
|
---|
45 | class LoggingResult(unittest.TestResult):
|
---|
46 | def __init__(self, log):
|
---|
47 | self._events = log
|
---|
48 | super(LoggingResult, self).__init__()
|
---|
49 |
|
---|
50 | def startTest(self, test):
|
---|
51 | self._events.append('startTest')
|
---|
52 | super(LoggingResult, self).startTest(test)
|
---|
53 |
|
---|
54 | def startTestRun(self):
|
---|
55 | self._events.append('startTestRun')
|
---|
56 | super(LoggingResult, self).startTestRun()
|
---|
57 |
|
---|
58 | def stopTest(self, test):
|
---|
59 | self._events.append('stopTest')
|
---|
60 | super(LoggingResult, self).stopTest(test)
|
---|
61 |
|
---|
62 | def stopTestRun(self):
|
---|
63 | self._events.append('stopTestRun')
|
---|
64 | super(LoggingResult, self).stopTestRun()
|
---|
65 |
|
---|
66 | def addFailure(self, *args):
|
---|
67 | self._events.append('addFailure')
|
---|
68 | super(LoggingResult, self).addFailure(*args)
|
---|
69 |
|
---|
70 | def addSuccess(self, *args):
|
---|
71 | self._events.append('addSuccess')
|
---|
72 | super(LoggingResult, self).addSuccess(*args)
|
---|
73 |
|
---|
74 | def addError(self, *args):
|
---|
75 | self._events.append('addError')
|
---|
76 | super(LoggingResult, self).addError(*args)
|
---|
77 |
|
---|
78 | def addSkip(self, *args):
|
---|
79 | self._events.append('addSkip')
|
---|
80 | super(LoggingResult, self).addSkip(*args)
|
---|
81 |
|
---|
82 | def addExpectedFailure(self, *args):
|
---|
83 | self._events.append('addExpectedFailure')
|
---|
84 | super(LoggingResult, self).addExpectedFailure(*args)
|
---|
85 |
|
---|
86 | def addUnexpectedSuccess(self, *args):
|
---|
87 | self._events.append('addUnexpectedSuccess')
|
---|
88 | super(LoggingResult, self).addUnexpectedSuccess(*args)
|
---|
89 |
|
---|
90 |
|
---|
91 | class ResultWithNoStartTestRunStopTestRun(object):
|
---|
92 | """An object honouring TestResult before startTestRun/stopTestRun."""
|
---|
93 |
|
---|
94 | def __init__(self):
|
---|
95 | self.failures = []
|
---|
96 | self.errors = []
|
---|
97 | self.testsRun = 0
|
---|
98 | self.skipped = []
|
---|
99 | self.expectedFailures = []
|
---|
100 | self.unexpectedSuccesses = []
|
---|
101 | self.shouldStop = False
|
---|
102 |
|
---|
103 | def startTest(self, test):
|
---|
104 | pass
|
---|
105 |
|
---|
106 | def stopTest(self, test):
|
---|
107 | pass
|
---|
108 |
|
---|
109 | def addError(self, test):
|
---|
110 | pass
|
---|
111 |
|
---|
112 | def addFailure(self, test):
|
---|
113 | pass
|
---|
114 |
|
---|
115 | def addSuccess(self, test):
|
---|
116 | pass
|
---|
117 |
|
---|
118 | def wasSuccessful(self):
|
---|
119 | return True
|
---|