0
0
Fork 1
mirror of https://mau.dev/maunium/synapse.git synced 2024-09-27 12:09:06 +02:00

Migrate all tests to use the dict-based config format instead of hanging items off HomeserverConfig (#5171)

This commit is contained in:
Amber Brown 2019-05-13 15:01:14 -05:00 committed by GitHub
parent 5a4b328f52
commit df2ebd75d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 238 additions and 201 deletions

1
changelog.d/5171.misc Normal file
View file

@ -0,0 +1 @@
Update tests to consistently be configured via the same code that is used when loading from configuration files.

View file

@ -108,6 +108,7 @@ class FileStorageProviderBackend(StorageProvider):
""" """
def __init__(self, hs, config): def __init__(self, hs, config):
self.hs = hs
self.cache_directory = hs.config.media_store_path self.cache_directory = hs.config.media_store_path
self.base_directory = config self.base_directory = config

View file

@ -37,8 +37,12 @@ class RegistrationTestCase(unittest.HomeserverTestCase):
hs_config = self.default_config("test") hs_config = self.default_config("test")
# some of the tests rely on us having a user consent version # some of the tests rely on us having a user consent version
hs_config.user_consent_version = "test_consent_version" hs_config["user_consent"] = {
hs_config.max_mau_value = 50 "version": "test_consent_version",
"template_dir": ".",
}
hs_config["max_mau_value"] = 50
hs_config["limit_usage_by_mau"] = True
hs = self.setup_test_homeserver(config=hs_config, expire_access_token=True) hs = self.setup_test_homeserver(config=hs_config, expire_access_token=True)
return hs return hs

View file

@ -37,7 +37,7 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
def make_homeserver(self, reactor, clock): def make_homeserver(self, reactor, clock):
config = self.default_config() config = self.default_config()
config.update_user_directory = True config["update_user_directory"] = True
return self.setup_test_homeserver(config=config) return self.setup_test_homeserver(config=config)
def prepare(self, reactor, clock, hs): def prepare(self, reactor, clock, hs):
@ -333,7 +333,7 @@ class TestUserDirSearchDisabled(unittest.HomeserverTestCase):
def make_homeserver(self, reactor, clock): def make_homeserver(self, reactor, clock):
config = self.default_config() config = self.default_config()
config.update_user_directory = True config["update_user_directory"] = True
hs = self.setup_test_homeserver(config=config) hs = self.setup_test_homeserver(config=config)
self.config = hs.config self.config = hs.config

View file

@ -54,7 +54,9 @@ class MatrixFederationAgentTests(TestCase):
self.agent = MatrixFederationAgent( self.agent = MatrixFederationAgent(
reactor=self.reactor, reactor=self.reactor,
tls_client_options_factory=ClientTLSOptionsFactory(default_config("test")), tls_client_options_factory=ClientTLSOptionsFactory(
default_config("test", parse=True)
),
_well_known_tls_policy=TrustingTLSPolicyForHTTPS(), _well_known_tls_policy=TrustingTLSPolicyForHTTPS(),
_srv_resolver=self.mock_resolver, _srv_resolver=self.mock_resolver,
_well_known_cache=self.well_known_cache, _well_known_cache=self.well_known_cache,

View file

@ -52,22 +52,26 @@ class EmailPusherTests(HomeserverTestCase):
return d return d
config = self.default_config() config = self.default_config()
config.email_enable_notifs = True config["email"] = {
config.start_pushers = True "enable_notifs": True,
"template_dir": os.path.abspath(
config.email_template_dir = os.path.abspath( pkg_resources.resource_filename('synapse', 'res/templates')
pkg_resources.resource_filename('synapse', 'res/templates') ),
) "expiry_template_html": "notice_expiry.html",
config.email_notif_template_html = "notif_mail.html" "expiry_template_text": "notice_expiry.txt",
config.email_notif_template_text = "notif_mail.txt" "notif_template_html": "notif_mail.html",
config.email_smtp_host = "127.0.0.1" "notif_template_text": "notif_mail.txt",
config.email_smtp_port = 20 "smtp_host": "127.0.0.1",
config.require_transport_security = False "smtp_port": 20,
config.email_smtp_user = None "require_transport_security": False,
config.email_smtp_pass = None "smtp_user": None,
config.email_app_name = "Matrix" "smtp_pass": None,
config.email_notif_from = "test@example.com" "app_name": "Matrix",
config.email_riot_base_url = None "notif_from": "test@example.com",
"riot_base_url": None,
}
config["public_baseurl"] = "aaa"
config["start_pushers"] = True
hs = self.setup_test_homeserver(config=config, sendmail=sendmail) hs = self.setup_test_homeserver(config=config, sendmail=sendmail)

View file

@ -54,7 +54,7 @@ class HTTPPusherTests(HomeserverTestCase):
m.post_json_get_json = post_json_get_json m.post_json_get_json = post_json_get_json
config = self.default_config() config = self.default_config()
config.start_pushers = True config["start_pushers"] = True
hs = self.setup_test_homeserver(config=config, simple_http_client=m) hs = self.setup_test_homeserver(config=config, simple_http_client=m)

View file

@ -42,15 +42,18 @@ class ConsentResourceTestCase(unittest.HomeserverTestCase):
def make_homeserver(self, reactor, clock): def make_homeserver(self, reactor, clock):
config = self.default_config() config = self.default_config()
config.user_consent_version = "1" config["public_baseurl"] = "aaaa"
config.public_baseurl = "" config["form_secret"] = "123abc"
config.form_secret = "123abc"
# Make some temporary templates... # Make some temporary templates...
temp_consent_path = self.mktemp() temp_consent_path = self.mktemp()
os.mkdir(temp_consent_path) os.mkdir(temp_consent_path)
os.mkdir(os.path.join(temp_consent_path, 'en')) os.mkdir(os.path.join(temp_consent_path, 'en'))
config.user_consent_template_dir = os.path.abspath(temp_consent_path)
config["user_consent"] = {
"version": "1",
"template_dir": os.path.abspath(temp_consent_path),
}
with open(os.path.join(temp_consent_path, "en/1.html"), 'w') as f: with open(os.path.join(temp_consent_path, "en/1.html"), 'w') as f:
f.write("{{version}},{{has_consented}}") f.write("{{version}},{{has_consented}}")

View file

@ -32,7 +32,7 @@ class IdentityTestCase(unittest.HomeserverTestCase):
def make_homeserver(self, reactor, clock): def make_homeserver(self, reactor, clock):
config = self.default_config() config = self.default_config()
config.enable_3pid_lookup = False config["enable_3pid_lookup"] = False
self.hs = self.setup_test_homeserver(config=config) self.hs = self.setup_test_homeserver(config=config)
return self.hs return self.hs

View file

@ -34,7 +34,7 @@ class DirectoryTestCase(unittest.HomeserverTestCase):
def make_homeserver(self, reactor, clock): def make_homeserver(self, reactor, clock):
config = self.default_config() config = self.default_config()
config.require_membership_for_aliases = True config["require_membership_for_aliases"] = True
self.hs = self.setup_test_homeserver(config=config) self.hs = self.setup_test_homeserver(config=config)

View file

@ -36,9 +36,9 @@ class EventStreamPermissionsTestCase(unittest.HomeserverTestCase):
def make_homeserver(self, reactor, clock): def make_homeserver(self, reactor, clock):
config = self.default_config() config = self.default_config()
config.enable_registration_captcha = False config["enable_registration_captcha"] = False
config.enable_registration = True config["enable_registration"] = True
config.auto_join_rooms = [] config["auto_join_rooms"] = []
hs = self.setup_test_homeserver( hs = self.setup_test_homeserver(
config=config, ratelimiter=NonCallableMock(spec_set=["can_do_action"]) config=config, ratelimiter=NonCallableMock(spec_set=["can_do_action"])

View file

@ -171,7 +171,7 @@ class ProfilesRestrictedTestCase(unittest.HomeserverTestCase):
def make_homeserver(self, reactor, clock): def make_homeserver(self, reactor, clock):
config = self.default_config() config = self.default_config()
config.require_auth_for_profile_requests = True config["require_auth_for_profile_requests"] = True
self.hs = self.setup_test_homeserver(config=config) self.hs = self.setup_test_homeserver(config=config)
return self.hs return self.hs

View file

@ -919,7 +919,7 @@ class PublicRoomsRestrictedTestCase(unittest.HomeserverTestCase):
self.url = b"/_matrix/client/r0/publicRooms" self.url = b"/_matrix/client/r0/publicRooms"
config = self.default_config() config = self.default_config()
config.restrict_public_rooms_to_local_users = True config["restrict_public_rooms_to_local_users"] = True
self.hs = self.setup_test_homeserver(config=config) self.hs = self.setup_test_homeserver(config=config)
return self.hs return self.hs

View file

@ -36,9 +36,9 @@ class FallbackAuthTests(unittest.HomeserverTestCase):
config = self.default_config() config = self.default_config()
config.enable_registration_captcha = True config["enable_registration_captcha"] = True
config.recaptcha_public_key = "brokencake" config["recaptcha_public_key"] = "brokencake"
config.registrations_require_3pid = [] config["registrations_require_3pid"] = []
hs = self.setup_test_homeserver(config=config) hs = self.setup_test_homeserver(config=config)
return hs return hs

View file

@ -201,9 +201,11 @@ class AccountValidityTestCase(unittest.HomeserverTestCase):
def make_homeserver(self, reactor, clock): def make_homeserver(self, reactor, clock):
config = self.default_config() config = self.default_config()
# Test for account expiring after a week. # Test for account expiring after a week.
config.enable_registration = True config["enable_registration"] = True
config.account_validity.enabled = True config["account_validity"] = {
config.account_validity.period = 604800000 # Time in ms for 1 week "enabled": True,
"period": 604800000, # Time in ms for 1 week
}
self.hs = self.setup_test_homeserver(config=config) self.hs = self.setup_test_homeserver(config=config)
return self.hs return self.hs
@ -299,14 +301,17 @@ class AccountValidityRenewalByEmailTestCase(unittest.HomeserverTestCase):
def make_homeserver(self, reactor, clock): def make_homeserver(self, reactor, clock):
config = self.default_config() config = self.default_config()
# Test for account expiring after a week and renewal emails being sent 2 # Test for account expiring after a week and renewal emails being sent 2
# days before expiry. # days before expiry.
config.enable_registration = True config["enable_registration"] = True
config.account_validity.enabled = True config["account_validity"] = {
config.account_validity.renew_by_email_enabled = True "enabled": True,
config.account_validity.period = 604800000 # Time in ms for 1 week "period": 604800000, # Time in ms for 1 week
config.account_validity.renew_at = 172800000 # Time in ms for 2 days "renew_at": 172800000, # Time in ms for 2 days
config.account_validity.renew_email_subject = "Renew your account" "renew_by_email_enabled": True,
"renew_email_subject": "Renew your account",
}
# Email config. # Email config.
self.email_attempts = [] self.email_attempts = []
@ -315,17 +320,23 @@ class AccountValidityRenewalByEmailTestCase(unittest.HomeserverTestCase):
self.email_attempts.append((args, kwargs)) self.email_attempts.append((args, kwargs))
return return
config.email_template_dir = os.path.abspath( config["email"] = {
pkg_resources.resource_filename('synapse', 'res/templates') "enable_notifs": True,
) "template_dir": os.path.abspath(
config.email_expiry_template_html = "notice_expiry.html" pkg_resources.resource_filename('synapse', 'res/templates')
config.email_expiry_template_text = "notice_expiry.txt" ),
config.email_smtp_host = "127.0.0.1" "expiry_template_html": "notice_expiry.html",
config.email_smtp_port = 20 "expiry_template_text": "notice_expiry.txt",
config.require_transport_security = False "notif_template_html": "notif_mail.html",
config.email_smtp_user = None "notif_template_text": "notif_mail.txt",
config.email_smtp_pass = None "smtp_host": "127.0.0.1",
config.email_notif_from = "test@example.com" "smtp_port": 20,
"require_transport_security": False,
"smtp_user": None,
"smtp_pass": None,
"notif_from": "test@example.com",
}
config["public_baseurl"] = "aaa"
self.hs = self.setup_test_homeserver(config=config, sendmail=sendmail) self.hs = self.setup_test_homeserver(config=config, sendmail=sendmail)

View file

@ -25,13 +25,11 @@ from six.moves.urllib import parse
from twisted.internet import defer, reactor from twisted.internet import defer, reactor
from twisted.internet.defer import Deferred from twisted.internet.defer import Deferred
from synapse.config.repository import MediaStorageProviderConfig
from synapse.rest.media.v1._base import FileInfo from synapse.rest.media.v1._base import FileInfo
from synapse.rest.media.v1.filepath import MediaFilePaths from synapse.rest.media.v1.filepath import MediaFilePaths
from synapse.rest.media.v1.media_storage import MediaStorage from synapse.rest.media.v1.media_storage import MediaStorage
from synapse.rest.media.v1.storage_provider import FileStorageProviderBackend from synapse.rest.media.v1.storage_provider import FileStorageProviderBackend
from synapse.util.logcontext import make_deferred_yieldable from synapse.util.logcontext import make_deferred_yieldable
from synapse.util.module_loader import load_module
from tests import unittest from tests import unittest
@ -120,12 +118,14 @@ class MediaRepoTests(unittest.HomeserverTestCase):
client.get_file = get_file client.get_file = get_file
self.storage_path = self.mktemp() self.storage_path = self.mktemp()
self.media_store_path = self.mktemp()
os.mkdir(self.storage_path) os.mkdir(self.storage_path)
os.mkdir(self.media_store_path)
config = self.default_config() config = self.default_config()
config.media_store_path = self.storage_path config["media_store_path"] = self.media_store_path
config.thumbnail_requirements = {} config["thumbnail_requirements"] = {}
config.max_image_pixels = 2000000 config["max_image_pixels"] = 2000000
provider_config = { provider_config = {
"module": "synapse.rest.media.v1.storage_provider.FileStorageProviderBackend", "module": "synapse.rest.media.v1.storage_provider.FileStorageProviderBackend",
@ -134,12 +134,7 @@ class MediaRepoTests(unittest.HomeserverTestCase):
"store_remote": True, "store_remote": True,
"config": {"directory": self.storage_path}, "config": {"directory": self.storage_path},
} }
config["media_storage_providers"] = [provider_config]
loaded = list(load_module(provider_config)) + [
MediaStorageProviderConfig(False, False, False)
]
config.media_storage_providers = [loaded]
hs = self.setup_test_homeserver(config=config, http_client=client) hs = self.setup_test_homeserver(config=config, http_client=client)

View file

@ -16,7 +16,6 @@
import os import os
import attr import attr
from netaddr import IPSet
from twisted.internet._resolver import HostResolution from twisted.internet._resolver import HostResolution
from twisted.internet.address import IPv4Address, IPv6Address from twisted.internet.address import IPv4Address, IPv6Address
@ -25,9 +24,6 @@ from twisted.python.failure import Failure
from twisted.test.proto_helpers import AccumulatingProtocol from twisted.test.proto_helpers import AccumulatingProtocol
from twisted.web._newclient import ResponseDone from twisted.web._newclient import ResponseDone
from synapse.config.repository import MediaStorageProviderConfig
from synapse.util.module_loader import load_module
from tests import unittest from tests import unittest
from tests.server import FakeTransport from tests.server import FakeTransport
@ -67,23 +63,23 @@ class URLPreviewTests(unittest.HomeserverTestCase):
def make_homeserver(self, reactor, clock): def make_homeserver(self, reactor, clock):
self.storage_path = self.mktemp()
os.mkdir(self.storage_path)
config = self.default_config() config = self.default_config()
config.url_preview_enabled = True config["url_preview_enabled"] = True
config.max_spider_size = 9999999 config["max_spider_size"] = 9999999
config.url_preview_ip_range_blacklist = IPSet( config["url_preview_ip_range_blacklist"] = (
( "192.168.1.1",
"192.168.1.1", "1.0.0.0/8",
"1.0.0.0/8", "3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
"3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", "2001:800::/21",
"2001:800::/21",
)
) )
config.url_preview_ip_range_whitelist = IPSet(("1.1.1.1",)) config["url_preview_ip_range_whitelist"] = ("1.1.1.1",)
config.url_preview_url_blacklist = [] config["url_preview_url_blacklist"] = []
config.media_store_path = self.storage_path
self.storage_path = self.mktemp()
self.media_store_path = self.mktemp()
os.mkdir(self.storage_path)
os.mkdir(self.media_store_path)
config["media_store_path"] = self.media_store_path
provider_config = { provider_config = {
"module": "synapse.rest.media.v1.storage_provider.FileStorageProviderBackend", "module": "synapse.rest.media.v1.storage_provider.FileStorageProviderBackend",
@ -93,11 +89,7 @@ class URLPreviewTests(unittest.HomeserverTestCase):
"config": {"directory": self.storage_path}, "config": {"directory": self.storage_path},
} }
loaded = list(load_module(provider_config)) + [ config["media_storage_providers"] = [provider_config]
MediaStorageProviderConfig(False, False, False)
]
config.media_storage_providers = [loaded]
hs = self.setup_test_homeserver(config=config) hs = self.setup_test_homeserver(config=config)

View file

@ -227,6 +227,8 @@ class ThreadedMemoryReactorClock(MemoryReactorClock):
""" """
def __init__(self): def __init__(self):
self.threadpool = ThreadPool(self)
self._udp = [] self._udp = []
lookups = self.lookups = {} lookups = self.lookups = {}
@ -255,6 +257,37 @@ class ThreadedMemoryReactorClock(MemoryReactorClock):
self.callLater(0, d.callback, True) self.callLater(0, d.callback, True)
return d return d
def getThreadPool(self):
return self.threadpool
class ThreadPool:
"""
Threadless thread pool.
"""
def __init__(self, reactor):
self._reactor = reactor
def start(self):
pass
def stop(self):
pass
def callInThreadWithCallback(self, onResult, function, *args, **kwargs):
def _(res):
if isinstance(res, Failure):
onResult(False, res)
else:
onResult(True, res)
d = Deferred()
d.addCallback(lambda x: function(*args, **kwargs))
d.addBoth(_)
self._reactor.callLater(0, d.callback, True)
return d
def setup_test_homeserver(cleanup_func, *args, **kwargs): def setup_test_homeserver(cleanup_func, *args, **kwargs):
""" """
@ -290,36 +323,10 @@ def setup_test_homeserver(cleanup_func, *args, **kwargs):
**kwargs **kwargs
) )
class ThreadPool:
"""
Threadless thread pool.
"""
def start(self):
pass
def stop(self):
pass
def callInThreadWithCallback(self, onResult, function, *args, **kwargs):
def _(res):
if isinstance(res, Failure):
onResult(False, res)
else:
onResult(True, res)
d = Deferred()
d.addCallback(lambda x: function(*args, **kwargs))
d.addBoth(_)
clock._reactor.callLater(0, d.callback, True)
return d
clock.threadpool = ThreadPool()
if pool: if pool:
pool.runWithConnection = runWithConnection pool.runWithConnection = runWithConnection
pool.runInteraction = runInteraction pool.runInteraction = runInteraction
pool.threadpool = ThreadPool() pool.threadpool = ThreadPool(clock._reactor)
pool.running = True pool.running = True
return d return d

View file

@ -12,6 +12,9 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
import os
import synapse.rest.admin import synapse.rest.admin
from synapse.rest.client.v1 import login, room from synapse.rest.client.v1 import login, room
from synapse.rest.client.v2_alpha import sync from synapse.rest.client.v2_alpha import sync
@ -30,20 +33,27 @@ class ConsentNoticesTests(unittest.HomeserverTestCase):
def make_homeserver(self, reactor, clock): def make_homeserver(self, reactor, clock):
tmpdir = self.mktemp()
os.mkdir(tmpdir)
self.consent_notice_message = "consent %(consent_uri)s" self.consent_notice_message = "consent %(consent_uri)s"
config = self.default_config() config = self.default_config()
config.user_consent_version = "1" config["user_consent"] = {
config.user_consent_server_notice_content = { "version": "1",
"msgtype": "m.text", "template_dir": tmpdir,
"body": self.consent_notice_message, "server_notice_content": {
"msgtype": "m.text",
"body": self.consent_notice_message,
},
} }
config.public_baseurl = "https://example.com/" config["public_baseurl"] = "https://example.com/"
config.form_secret = "123abc" config["form_secret"] = "123abc"
config.server_notices_mxid = "@notices:test" config["server_notices"] = {
config.server_notices_mxid_display_name = "test display name" "system_mxid_localpart": "notices",
config.server_notices_mxid_avatar_url = None "system_mxid_display_name": "test display name",
config.server_notices_room_name = "Server Notices" "system_mxid_avatar_url": None,
"room_name": "Server Notices",
}
hs = self.setup_test_homeserver(config=config) hs = self.setup_test_homeserver(config=config)

View file

@ -29,7 +29,12 @@ from tests import unittest
class TestResourceLimitsServerNotices(unittest.HomeserverTestCase): class TestResourceLimitsServerNotices(unittest.HomeserverTestCase):
def make_homeserver(self, reactor, clock): def make_homeserver(self, reactor, clock):
hs_config = self.default_config("test") hs_config = self.default_config("test")
hs_config.server_notices_mxid = "@server:test" hs_config["server_notices"] = {
"system_mxid_localpart": "server",
"system_mxid_display_name": "test display name",
"system_mxid_avatar_url": None,
"room_name": "Server Notices",
}
hs = self.setup_test_homeserver(config=hs_config, expire_access_token=True) hs = self.setup_test_homeserver(config=hs_config, expire_access_token=True)
return hs return hs
@ -79,7 +84,7 @@ class TestResourceLimitsServerNotices(unittest.HomeserverTestCase):
self._send_notice.assert_not_called() self._send_notice.assert_not_called()
# Test when mau limiting disabled # Test when mau limiting disabled
self.hs.config.hs_disabled = False self.hs.config.hs_disabled = False
self.hs.limit_usage_by_mau = False self.hs.config.limit_usage_by_mau = False
self.get_success(self._rlsn.maybe_send_server_notice_to_user(self.user_id)) self.get_success(self._rlsn.maybe_send_server_notice_to_user(self.user_id))
self._send_notice.assert_not_called() self._send_notice.assert_not_called()

View file

@ -168,7 +168,7 @@ class StateTestCase(unittest.TestCase):
"get_state_resolution_handler", "get_state_resolution_handler",
] ]
) )
hs.config = default_config("tesths") hs.config = default_config("tesths", True)
hs.get_datastore.return_value = self.store hs.get_datastore.return_value = self.store
hs.get_state_handler.return_value = None hs.get_state_handler.return_value = None
hs.get_clock.return_value = MockClock() hs.get_clock.return_value = MockClock()

View file

@ -27,6 +27,7 @@ import twisted.logger
from twisted.internet.defer import Deferred from twisted.internet.defer import Deferred
from twisted.trial import unittest from twisted.trial import unittest
from synapse.config.homeserver import HomeServerConfig
from synapse.http.server import JsonResource from synapse.http.server import JsonResource
from synapse.http.site import SynapseRequest from synapse.http.site import SynapseRequest
from synapse.server import HomeServer from synapse.server import HomeServer
@ -245,7 +246,7 @@ class HomeserverTestCase(TestCase):
def default_config(self, name="test"): def default_config(self, name="test"):
""" """
Get a default HomeServer config object. Get a default HomeServer config dict.
Args: Args:
name (str): The homeserver name/domain. name (str): The homeserver name/domain.
@ -335,7 +336,14 @@ class HomeserverTestCase(TestCase):
kwargs.update(self._hs_args) kwargs.update(self._hs_args)
if "config" not in kwargs: if "config" not in kwargs:
config = self.default_config() config = self.default_config()
kwargs["config"] = config else:
config = kwargs["config"]
# Parse the config from a config dict into a HomeServerConfig
config_obj = HomeServerConfig()
config_obj.parse_config_dict(config)
kwargs["config"] = config_obj
hs = setup_test_homeserver(self.addCleanup, *args, **kwargs) hs = setup_test_homeserver(self.addCleanup, *args, **kwargs)
stor = hs.get_datastore() stor = hs.get_datastore()

View file

@ -110,7 +110,7 @@ def setupdb():
atexit.register(_cleanup) atexit.register(_cleanup)
def default_config(name): def default_config(name, parse=False):
""" """
Create a reasonable test config. Create a reasonable test config.
""" """
@ -121,75 +121,69 @@ def default_config(name):
# the test signing key is just an arbitrary ed25519 key to keep the config # the test signing key is just an arbitrary ed25519 key to keep the config
# parser happy # parser happy
"signing_key": "ed25519 a_lPym qvioDNmfExFBRPgdTU+wtFYKq4JfwFRv7sYVgWvmgJg", "signing_key": "ed25519 a_lPym qvioDNmfExFBRPgdTU+wtFYKq4JfwFRv7sYVgWvmgJg",
"event_cache_size": 1,
"enable_registration": True,
"enable_registration_captcha": False,
"macaroon_secret_key": "not even a little secret",
"expire_access_token": False,
"trusted_third_party_id_servers": [],
"room_invite_state_types": [],
"password_providers": [],
"worker_replication_url": "",
"worker_app": None,
"email_enable_notifs": False,
"block_non_admin_invites": False,
"federation_domain_whitelist": None,
"federation_rc_reject_limit": 10,
"federation_rc_sleep_limit": 10,
"federation_rc_sleep_delay": 100,
"federation_rc_concurrent": 10,
"filter_timeline_limit": 5000,
"user_directory_search_all_users": False,
"user_consent_server_notice_content": None,
"block_events_without_consent_error": None,
"user_consent_at_registration": False,
"user_consent_policy_name": "Privacy Policy",
"media_storage_providers": [],
"autocreate_auto_join_rooms": True,
"auto_join_rooms": [],
"limit_usage_by_mau": False,
"hs_disabled": False,
"hs_disabled_message": "",
"hs_disabled_limit_type": "",
"max_mau_value": 50,
"mau_trial_days": 0,
"mau_stats_only": False,
"mau_limits_reserved_threepids": [],
"admin_contact": None,
"rc_message": {"per_second": 10000, "burst_count": 10000},
"rc_registration": {"per_second": 10000, "burst_count": 10000},
"rc_login": {
"address": {"per_second": 10000, "burst_count": 10000},
"account": {"per_second": 10000, "burst_count": 10000},
"failed_attempts": {"per_second": 10000, "burst_count": 10000},
},
"saml2_enabled": False,
"public_baseurl": None,
"default_identity_server": None,
"key_refresh_interval": 24 * 60 * 60 * 1000,
"old_signing_keys": {},
"tls_fingerprints": [],
"use_frozen_dicts": False,
# We need a sane default_room_version, otherwise attempts to create
# rooms will fail.
"default_room_version": "1",
# disable user directory updates, because they get done in the
# background, which upsets the test runner.
"update_user_directory": False,
} }
config = HomeServerConfig() if parse:
config.parse_config_dict(config_dict) config = HomeServerConfig()
config.parse_config_dict(config_dict)
return config
# TODO: move this stuff into config_dict or get rid of it return config_dict
config.event_cache_size = 1
config.enable_registration = True
config.enable_registration_captcha = False
config.macaroon_secret_key = "not even a little secret"
config.expire_access_token = False
config.trusted_third_party_id_servers = []
config.room_invite_state_types = []
config.password_providers = []
config.worker_replication_url = ""
config.worker_app = None
config.email_enable_notifs = False
config.block_non_admin_invites = False
config.federation_domain_whitelist = None
config.federation_rc_reject_limit = 10
config.federation_rc_sleep_limit = 10
config.federation_rc_sleep_delay = 100
config.federation_rc_concurrent = 10
config.filter_timeline_limit = 5000
config.user_directory_search_all_users = False
config.user_consent_server_notice_content = None
config.block_events_without_consent_error = None
config.user_consent_at_registration = False
config.user_consent_policy_name = "Privacy Policy"
config.media_storage_providers = []
config.autocreate_auto_join_rooms = True
config.auto_join_rooms = []
config.limit_usage_by_mau = False
config.hs_disabled = False
config.hs_disabled_message = ""
config.hs_disabled_limit_type = ""
config.max_mau_value = 50
config.mau_trial_days = 0
config.mau_stats_only = False
config.mau_limits_reserved_threepids = []
config.admin_contact = None
config.rc_messages_per_second = 10000
config.rc_message_burst_count = 10000
config.rc_registration.per_second = 10000
config.rc_registration.burst_count = 10000
config.rc_login_address.per_second = 10000
config.rc_login_address.burst_count = 10000
config.rc_login_account.per_second = 10000
config.rc_login_account.burst_count = 10000
config.rc_login_failed_attempts.per_second = 10000
config.rc_login_failed_attempts.burst_count = 10000
config.saml2_enabled = False
config.public_baseurl = None
config.default_identity_server = None
config.key_refresh_interval = 24 * 60 * 60 * 1000
config.old_signing_keys = {}
config.tls_fingerprints = []
config.use_frozen_dicts = False
# we need a sane default_room_version, otherwise attempts to create rooms will
# fail.
config.default_room_version = "1"
# disable user directory updates, because they get done in the
# background, which upsets the test runner.
config.update_user_directory = False
return config
class TestHomeServer(HomeServer): class TestHomeServer(HomeServer):
@ -223,7 +217,7 @@ def setup_test_homeserver(
from twisted.internet import reactor from twisted.internet import reactor
if config is None: if config is None:
config = default_config(name) config = default_config(name, parse=True)
config.ldap_enabled = False config.ldap_enabled = False