|
@@ 52-63 (lines=12) @@
|
| 49 |
|
self.assertEqual(report.get_action_status(a).status, ExecutionReport.ActionStatus.CANCELED) |
| 50 |
|
self.assertEqual(report.get_action_status(b).status, ExecutionReport.ActionStatus.FAILED) |
| 51 |
|
|
| 52 |
|
def test_exceptions_in_dependency_with_weak_dependencies(self): |
| 53 |
|
a = self._action("a", weak_dependencies=True) |
| 54 |
|
b = self._action("b", exception=Exception("foobar")) |
| 55 |
|
a.add_dependency(b) |
| 56 |
|
|
| 57 |
|
with self.assertRaises(CompoundException) as catcher: |
| 58 |
|
execute(a, jobs=1) |
| 59 |
|
report = catcher.exception.execution_report |
| 60 |
|
|
| 61 |
|
self.assertFalse(report.is_success) |
| 62 |
|
self.assertEqual(report.get_action_status(a).status, ExecutionReport.ActionStatus.SUCCESSFUL) |
| 63 |
|
self.assertEqual(report.get_action_status(b).status, ExecutionReport.ActionStatus.FAILED) |
| 64 |
|
|
| 65 |
|
def test_exceptions_in_dependencies_with_keep_going(self): |
| 66 |
|
a = self._action("a") |
|
@@ 14-25 (lines=12) @@
|
| 11 |
|
|
| 12 |
|
|
| 13 |
|
class ExceptionsHandlingTestCase(ActionTreeTestCase): |
| 14 |
|
def test_simple_failure(self): |
| 15 |
|
a = self._action("a", exception=Exception("foobar")) |
| 16 |
|
|
| 17 |
|
with self.assertRaises(CompoundException) as catcher: |
| 18 |
|
execute(a, jobs=1) |
| 19 |
|
report = catcher.exception.execution_report |
| 20 |
|
|
| 21 |
|
self.assertEqual(len(catcher.exception.exceptions), 1) |
| 22 |
|
self.assertEqual(catcher.exception.exceptions[0].args, ("foobar",)) |
| 23 |
|
|
| 24 |
|
self.assertFalse(report.is_success) |
| 25 |
|
self.assertEqual(report.get_action_status(a).status, ExecutionReport.ActionStatus.FAILED) |
| 26 |
|
|
| 27 |
|
def test_simple_failure_without_raise(self): |
| 28 |
|
a = self._action("a", exception=Exception("foobar")) |