Show More
@@ -185,3 +185,25 b' class ITaskControllerTestCase(TaskTestBase):' | |||||
185 | d.addCallback(lambda _: self.tc.get_task_result(0, block=True)) |
|
185 | d.addCallback(lambda _: self.tc.get_task_result(0, block=True)) | |
186 | d.addErrback(lambda f: self.assertRaises(IndexError, f.raiseException)) |
|
186 | d.addErrback(lambda f: self.assertRaises(IndexError, f.raiseException)) | |
187 | return d |
|
187 | return d | |
|
188 | ||||
|
189 | def test_traceback(self): | |||
|
190 | """Ensure that we have a traceback object in task failures.""" | |||
|
191 | ||||
|
192 | self.addEngine(1) | |||
|
193 | cmd = """ | |||
|
194 | def fail(): | |||
|
195 | raise IOError('failure test') | |||
|
196 | ||||
|
197 | result = fail() | |||
|
198 | """ | |||
|
199 | t1 = task.StringTask(cmd, pull = 'result') | |||
|
200 | d = self.tc.run(t1) | |||
|
201 | d.addCallback(self.tc.get_task_result, block=True) | |||
|
202 | # Sanity check, that the right exception is raised | |||
|
203 | d.addCallback(lambda tr: self.assertRaises(IOError, tr.raise_exception)) | |||
|
204 | # Rerun the same task, this time we check for the traceback | |||
|
205 | d.addCallback(lambda r: self.tc.run(t1)) | |||
|
206 | d.addCallback(self.tc.get_task_result, block=True) | |||
|
207 | d.addCallback(lambda tr: self.assertNotEquals(tr.failure.getTraceback(), | |||
|
208 | None)) | |||
|
209 | return d |
General Comments 0
You need to be logged in to leave comments.
Login now