From 14ed5515b9a3fbc01d03270dfcc210586e781bc4 Mon Sep 17 00:00:00 2001 From: Slawek Kaplonski Date: Tue, 9 Apr 2019 22:04:36 +0200 Subject: [PATCH] Handle DBConnectionError in skip_if_timeout decorator In some cases it may happen that when db test will fail due to timeout oslo_db.exception.DBConnectionError will be raised instead of sqlalchemy_exc.InterfaceError. This patch adds handling such case in skip_if_timeout decorator. Change-Id: I7350d5c884784317c94ff42f28526065ff399b40 Related-Bug: #1687027 (cherry picked from commit b7458b615972dc6ff93a12abbd0a8f32e8da55eb) --- neutron/tests/base.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/neutron/tests/base.py b/neutron/tests/base.py index 800ca4f0eba..ea14fd8b513 100644 --- a/neutron/tests/base.py +++ b/neutron/tests/base.py @@ -31,6 +31,7 @@ from neutron_lib.db import api as db_api from neutron_lib import fixture from oslo_concurrency.fixture import lockutils from oslo_config import cfg +from oslo_db import exception as db_exceptions from oslo_db import options as db_options from oslo_messaging import conffixture as messaging_conffixture from oslo_utils import excutils @@ -123,7 +124,8 @@ def skip_if_timeout(reason): msg = ("Timeout raised for test %s, skipping it " "because of: %s") % (self.id(), reason) raise self.skipTest(msg) - except sqlalchemy_exc.InterfaceError: + except (sqlalchemy_exc.InterfaceError, + db_exceptions.DBConnectionError): # In case of db tests very often TimeoutException is reason of # some sqlalchemy InterfaceError exception and that is final # raised exception which needs to be handled