mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 22:14:55 -04:00
Add database config class (#6513)
This encapsulates config for a given database and is the way to get new connections.
This commit is contained in:
parent
91ccfe9f37
commit
2284eb3a53
19 changed files with 286 additions and 208 deletions
|
@ -28,7 +28,7 @@ from synapse.storage.data_stores.main.appservice import (
|
|||
ApplicationServiceStore,
|
||||
ApplicationServiceTransactionStore,
|
||||
)
|
||||
from synapse.storage.database import Database
|
||||
from synapse.storage.database import Database, make_conn
|
||||
|
||||
from tests import unittest
|
||||
from tests.utils import setup_test_homeserver
|
||||
|
@ -55,8 +55,10 @@ class ApplicationServiceStoreTestCase(unittest.TestCase):
|
|||
self._add_appservice("token2", "as2", "some_url", "some_hs_token", "bob")
|
||||
self._add_appservice("token3", "as3", "some_url", "some_hs_token", "bob")
|
||||
# must be done after inserts
|
||||
database = Database(hs)
|
||||
self.store = ApplicationServiceStore(database, hs.get_db_conn(), hs)
|
||||
database = hs.get_datastores().databases[0]
|
||||
self.store = ApplicationServiceStore(
|
||||
database, make_conn(database._database_config, database.engine), hs
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
# TODO: suboptimal that we need to create files for tests!
|
||||
|
@ -111,9 +113,6 @@ class ApplicationServiceTransactionStoreTestCase(unittest.TestCase):
|
|||
hs.config.event_cache_size = 1
|
||||
hs.config.password_providers = []
|
||||
|
||||
self.db_pool = hs.get_db_pool()
|
||||
self.engine = hs.database_engine
|
||||
|
||||
self.as_list = [
|
||||
{"token": "token1", "url": "https://matrix-as.org", "id": "id_1"},
|
||||
{"token": "alpha_tok", "url": "https://alpha.com", "id": "id_alpha"},
|
||||
|
@ -125,8 +124,15 @@ class ApplicationServiceTransactionStoreTestCase(unittest.TestCase):
|
|||
|
||||
self.as_yaml_files = []
|
||||
|
||||
database = Database(hs)
|
||||
self.store = TestTransactionStore(database, hs.get_db_conn(), hs)
|
||||
# We assume there is only one database in these tests
|
||||
database = hs.get_datastores().databases[0]
|
||||
self.db_pool = database._db_pool
|
||||
self.engine = database.engine
|
||||
|
||||
db_config = hs.config.get_single_database()
|
||||
self.store = TestTransactionStore(
|
||||
database, make_conn(db_config, self.engine), hs
|
||||
)
|
||||
|
||||
def _add_service(self, url, as_token, id):
|
||||
as_yaml = dict(
|
||||
|
@ -419,7 +425,10 @@ class ApplicationServiceStoreConfigTestCase(unittest.TestCase):
|
|||
hs.config.event_cache_size = 1
|
||||
hs.config.password_providers = []
|
||||
|
||||
ApplicationServiceStore(Database(hs), hs.get_db_conn(), hs)
|
||||
database = hs.get_datastores().databases[0]
|
||||
ApplicationServiceStore(
|
||||
database, make_conn(database._database_config, database.engine), hs
|
||||
)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def test_duplicate_ids(self):
|
||||
|
@ -435,7 +444,10 @@ class ApplicationServiceStoreConfigTestCase(unittest.TestCase):
|
|||
hs.config.password_providers = []
|
||||
|
||||
with self.assertRaises(ConfigError) as cm:
|
||||
ApplicationServiceStore(Database(hs), hs.get_db_conn(), hs)
|
||||
database = hs.get_datastores().databases[0]
|
||||
ApplicationServiceStore(
|
||||
database, make_conn(database._database_config, database.engine), hs
|
||||
)
|
||||
|
||||
e = cm.exception
|
||||
self.assertIn(f1, str(e))
|
||||
|
@ -456,7 +468,10 @@ class ApplicationServiceStoreConfigTestCase(unittest.TestCase):
|
|||
hs.config.password_providers = []
|
||||
|
||||
with self.assertRaises(ConfigError) as cm:
|
||||
ApplicationServiceStore(Database(hs), hs.get_db_conn(), hs)
|
||||
database = hs.get_datastores().databases[0]
|
||||
ApplicationServiceStore(
|
||||
database, make_conn(database._database_config, database.engine), hs
|
||||
)
|
||||
|
||||
e = cm.exception
|
||||
self.assertIn(f1, str(e))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue