summary refs log tree commit diff
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2018-01-25 23:14:24 +0000
committerRichard van der Hoff <richard@matrix.org>2018-01-27 17:15:15 +0000
commitd7eacc4f87ca8353f612171fa7e070c14e3b35ee (patch)
treee9f15461058daf837df687a89f39aa16db41f2e9
parentRun on_new_connection for unit tests (diff)
downloadsynapse-d7eacc4f87ca8353f612171fa7e070c14e3b35ee.tar.xz
Create dbpool as normal in tests
... instead of creating our own special SQLiteMemoryDbPool, whose purpose was a
bit of a mystery.

For some reason this makes one of the tests run slightly slower, so bump the
sleep(). Sorry.
-rw-r--r--tests/crypto/test_keyring.py4
-rw-r--r--tests/utils.py60
2 files changed, 19 insertions, 45 deletions
diff --git a/tests/crypto/test_keyring.py b/tests/crypto/test_keyring.py
index c899fecf5d..d4ec02ffc2 100644
--- a/tests/crypto/test_keyring.py
+++ b/tests/crypto/test_keyring.py
@@ -167,7 +167,7 @@ class KeyringTestCase(unittest.TestCase):
 
             # wait a tick for it to send the request to the perspectives server
             # (it first tries the datastore)
-            yield async.sleep(0.005)
+            yield async.sleep(1)   # XXX find out why this takes so long!
             self.http_client.post_json.assert_called_once()
 
             self.assertIs(LoggingContext.current_context(), context_11)
@@ -183,7 +183,7 @@ class KeyringTestCase(unittest.TestCase):
                 res_deferreds_2 = kr.verify_json_objects_for_server(
                     [("server10", json1)],
                 )
-                yield async.sleep(0.005)
+                yield async.sleep(01)
                 self.http_client.post_json.assert_not_called()
                 res_deferreds_2[0].addBoth(self.check_context, None)
 
diff --git a/tests/utils.py b/tests/utils.py
index ab5e2341c9..50de4199be 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -19,7 +19,6 @@ import urllib
 import urlparse
 
 from mock import Mock, patch
-from twisted.enterprise.adbapi import ConnectionPool
 from twisted.internet import defer, reactor
 
 from synapse.api.errors import CodeMessageException, cs_error
@@ -60,30 +59,37 @@ def setup_test_homeserver(name="test", datastore=None, config=None, **kargs):
         config.update_user_directory = False
 
     config.use_frozen_dicts = True
-    config.database_config = {"name": "sqlite3"}
     config.ldap_enabled = False
 
     if "clock" not in kargs:
         kargs["clock"] = MockClock()
 
+    config.database_config = {
+        "name": "sqlite3",
+        "args": {
+            "database": ":memory:",
+            "cp_min": 1,
+            "cp_max": 1,
+        },
+    }
     db_engine = create_engine(config.database_config)
+
+    # we need to configure the connection pool to run the on_new_connection
+    # function, so that we can test code that uses custom sqlite functions
+    # (like rank).
+    config.database_config["args"]["cp_openfun"] = db_engine.on_new_connection
+
     if datastore is None:
-        # we need to configure the connection pool to run the on_new_connection
-        # function, so that we can test code that uses custom sqlite functions
-        # (like rank).
-        db_pool = SQLiteMemoryDbPool(
-            cp_openfun=db_engine.on_new_connection,
-        )
-        yield db_pool.prepare()
         hs = HomeServer(
-            name, db_pool=db_pool, config=config,
+            name, config=config,
+            db_config=config.database_config,
             version_string="Synapse/tests",
             database_engine=db_engine,
-            get_db_conn=db_pool.get_db_conn,
             room_list_handler=object(),
             tls_server_context_factory=Mock(),
             **kargs
         )
+        yield prepare_database(hs.get_db_conn(), db_engine, config)
         hs.setup()
     else:
         hs = HomeServer(
@@ -308,38 +314,6 @@ class MockClock(object):
         return d
 
 
-class SQLiteMemoryDbPool(ConnectionPool, object):
-    def __init__(self, **kwargs):
-        connkw = {
-            "cp_min": 1,
-            "cp_max": 1,
-        }
-        connkw.update(kwargs)
-
-        super(SQLiteMemoryDbPool, self).__init__(
-            "sqlite3", ":memory:", **connkw
-        )
-
-        self.config = Mock()
-        self.config.password_providers = []
-        self.config.database_config = {"name": "sqlite3"}
-
-    def prepare(self):
-        engine = self.create_engine()
-        return self.runWithConnection(
-            lambda conn: prepare_database(conn, engine, self.config)
-        )
-
-    def get_db_conn(self):
-        conn = self.connect()
-        engine = self.create_engine()
-        prepare_database(conn, engine, self.config)
-        return conn
-
-    def create_engine(self):
-        return create_engine(self.config.database_config)
-
-
 def _format_call(args, kwargs):
     return ", ".join(
         ["%r" % (a) for a in args] +