summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Podoliaka <rpodolyaka@mirantis.com>2016-04-18 11:30:50 +0300
committerRoman Podoliaka <rpodolyaka@mirantis.com>2016-04-18 19:10:31 +0300
commit30f061d236065d2d2f6af25cfa31811598960411 (patch)
tree72bf8d0f467b31d6da8849224d680e89627b2273
parent7fcaf832b6fbdb3b8982017c391e19c5e3744680 (diff)
downloadoslo-db-30f061d236065d2d2f6af25cfa31811598960411.tar.gz
Fix unit tests failures, when psycopg2 is not installed
A few TestConnectionUtils test cases currently fail, when psycopg2 is not installed, while they do not necessarily need to have the latter. Mock parts of psycopg2 dialect in SQLAlchemy to make sure psycopg2 module is not imported in tests. Closes-Bug: #1499216 Change-Id: I92c14f0e29a57e6e3ff4a8a8a1c25bbd16848d9a
-rw-r--r--oslo_db/tests/sqlalchemy/test_utils.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/oslo_db/tests/sqlalchemy/test_utils.py b/oslo_db/tests/sqlalchemy/test_utils.py
index 17175f3..160f1a3 100644
--- a/oslo_db/tests/sqlalchemy/test_utils.py
+++ b/oslo_db/tests/sqlalchemy/test_utils.py
@@ -33,6 +33,7 @@ from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy.orm import Session
from sqlalchemy.sql import select
from sqlalchemy.types import UserDefinedType, NullType
+from sqlalchemy.dialects.postgresql import psycopg2
from oslo_db import exception
from oslo_db.sqlalchemy.compat import utils as compat_utils
@@ -700,6 +701,22 @@ class TestConnectionUtils(test_utils.BaseTestCase):
self.connect_string = 'postgresql://dude:pass@localhost/test'
+ # NOTE(rpodolyaka): mock the dialect parts, so that we don't depend
+ # on psycopg2 (or any other DBAPI implementation) in these tests
+
+ @classmethod
+ def fake_dbapi(cls):
+ return mock.MagicMock()
+ patch_dbapi = mock.patch.object(psycopg2.PGDialect_psycopg2, 'dbapi',
+ new=fake_dbapi)
+ patch_dbapi.start()
+ self.addCleanup(patch_dbapi.stop)
+
+ patch_onconnect = mock.patch.object(psycopg2.PGDialect_psycopg2,
+ 'on_connect')
+ patch_onconnect.start()
+ self.addCleanup(patch_onconnect.stop)
+
def test_connect_string(self):
connect_string = utils.get_connect_string(**self.full_credentials)
self.assertEqual(connect_string, self.connect_string)