diff --git a/neutron/tests/base.py b/neutron/tests/base.py index 36a4a9b7531..a4fbf9f6eb0 100644 --- a/neutron/tests/base.py +++ b/neutron/tests/base.py @@ -44,6 +44,7 @@ from osprofiler import profiler import six from sqlalchemy import exc as sqlalchemy_exc import testtools +from testtools import content from neutron._i18n import _ from neutron.agent.linux import external_process @@ -187,12 +188,14 @@ def _catch_timeout(f): # declarations) this catch can be remove. # [1] https://review.opendev.org/#/c/631275/ except fixtures.TimeoutException: - with excutils.save_and_reraise_exception() as ctxt: - if idx < TESTCASE_RETRIES: - msg = ('"fixtures.TimeoutException" during test case ' - 'execution no %s; test case re-executed' % idx) - self.addDetail('DietTestCase', msg) - ctxt.reraise = False + if idx < TESTCASE_RETRIES: + msg = ('"fixtures.TimeoutException" during test case ' + 'execution no %s; test case re-executed' % idx) + self.addDetail('DietTestCase', + content.text_content(msg)) + self._set_timeout() + else: + self.fail('Execution of this test timed out') return func