Lines Matching +full:test +full:- +full:result
17 """A simple test suite that doesn't provide class or module shared fixtures.
42 for test in self:
43 cases += test.countTestCases()
46 def addTest(self, test): argument
48 if not hasattr(test, '__call__'):
49 raise TypeError("{} is not callable".format(repr(test)))
50 if isinstance(test, type) and issubclass(test,
54 self._tests.append(test)
59 for test in tests:
60 self.addTest(test)
62 def run(self, result): argument
63 for test in self:
64 if result.shouldStop:
66 test(result)
67 return result
74 for test in self:
75 test.debug()
79 """A test suite is a composite test consisting of a number of TestCases.
81 For use, create an instance of TestSuite, then add test case instances.
82 When all tests have been added, the suite can be passed to a test
83 runner, such as TextTestRunner. It will run the individual test cases
88 def run(self, result, debug=False): argument
90 if getattr(result, '_testRunEntered', False) is False:
91 result._testRunEntered = topLevel = True
93 for test in self:
94 if result.shouldStop:
97 if _isnotsuite(test):
98 self._tearDownPreviousClass(test, result)
99 self._handleModuleFixture(test, result)
100 self._handleClassSetUp(test, result)
101 result._previousTestClass = test.__class__
103 if (getattr(test.__class__, '_classSetupFailed', False) or
104 getattr(result, '_moduleSetUpFailed', False)):
108 test(result)
110 test.debug()
113 self._tearDownPreviousClass(None, result)
114 self._handleModuleTearDown(result)
115 result._testRunEntered = False
116 return result
125 def _handleClassSetUp(self, test, result): argument
126 previousClass = getattr(result, '_previousTestClass', None)
127 currentClass = test.__class__
130 if result._moduleSetUpFailed:
138 # test may actually be a function
139 # so its class will be a builtin-type
144 _call_if_exists(result, '_setupStdout')
148 if isinstance(result, _DebugResult):
153 self._addClassOrModuleLevelException(result, e, errorName)
155 _call_if_exists(result, '_restoreStdout')
157 def _get_previous_module(self, result): argument
159 previousClass = getattr(result, '_previousTestClass', None)
165 def _handleModuleFixture(self, test, result): argument
166 previousModule = self._get_previous_module(result)
167 currentModule = test.__class__.__module__
171 self._handleModuleTearDown(result)
173 result._moduleSetUpFailed = False
180 _call_if_exists(result, '_setupStdout')
184 if isinstance(result, _DebugResult):
186 result._moduleSetUpFailed = True
188 self._addClassOrModuleLevelException(result, e, errorName)
190 _call_if_exists(result, '_restoreStdout')
192 def _addClassOrModuleLevelException(self, result, exception, errorName): argument
194 addSkip = getattr(result, 'addSkip', None)
198 result.addError(error, sys.exc_info())
200 def _handleModuleTearDown(self, result): argument
201 previousModule = self._get_previous_module(result)
204 if result._moduleSetUpFailed:
214 _call_if_exists(result, '_setupStdout')
218 if isinstance(result, _DebugResult):
221 self._addClassOrModuleLevelException(result, e, errorName)
223 _call_if_exists(result, '_restoreStdout')
225 def _tearDownPreviousClass(self, test, result): argument
226 previousClass = getattr(result, '_previousTestClass', None)
227 currentClass = test.__class__
232 if getattr(result, '_moduleSetUpFailed', False):
239 _call_if_exists(result, '_setupStdout')
243 if isinstance(result, _DebugResult):
247 self._addClassOrModuleLevelException(result, e, errorName)
249 _call_if_exists(result, '_restoreStdout')
254 Placeholder for a TestCase inside a result. As far as a TestResult
255 is concerned, this looks exactly like a unit test. Used to insert
256 arbitrary errors into a test suite run.
279 def run(self, result): argument
280 # could call result.addError(...) - but this test-like object
284 def __call__(self, result): argument
285 return self.run(result)
290 def _isnotsuite(test): argument
291 "A crude way to tell apart testcases and suites with duck-typing"
293 iter(test)