Migrate all tests to use the dict-based config format instead of hanging items off HomeserverConfig (#5171)
parent
5a4b328f52
commit
df2ebd75d3
|
@ -0,0 +1 @@
|
|||
Update tests to consistently be configured via the same code that is used when loading from configuration files.
|
|
@ -108,6 +108,7 @@ class FileStorageProviderBackend(StorageProvider):
|
|||
"""
|
||||
|
||||
def __init__(self, hs, config):
|
||||
self.hs = hs
|
||||
self.cache_directory = hs.config.media_store_path
|
||||
self.base_directory = config
|
||||
|
||||
|
|
|
@ -37,8 +37,12 @@ class RegistrationTestCase(unittest.HomeserverTestCase):
|
|||
hs_config = self.default_config("test")
|
||||
|
||||
# some of the tests rely on us having a user consent version
|
||||
hs_config.user_consent_version = "test_consent_version"
|
||||
hs_config.max_mau_value = 50
|
||||
hs_config["user_consent"] = {
|
||||
"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)
|
||||
return hs
|
||||
|
|
|
@ -37,7 +37,7 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
|
|||
def make_homeserver(self, reactor, clock):
|
||||
|
||||
config = self.default_config()
|
||||
config.update_user_directory = True
|
||||
config["update_user_directory"] = True
|
||||
return self.setup_test_homeserver(config=config)
|
||||
|
||||
def prepare(self, reactor, clock, hs):
|
||||
|
@ -333,7 +333,7 @@ class TestUserDirSearchDisabled(unittest.HomeserverTestCase):
|
|||
|
||||
def make_homeserver(self, reactor, clock):
|
||||
config = self.default_config()
|
||||
config.update_user_directory = True
|
||||
config["update_user_directory"] = True
|
||||
hs = self.setup_test_homeserver(config=config)
|
||||
|
||||
self.config = hs.config
|
||||
|
|
|
@ -54,7 +54,9 @@ class MatrixFederationAgentTests(TestCase):
|
|||
|
||||
self.agent = MatrixFederationAgent(
|
||||
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(),
|
||||
_srv_resolver=self.mock_resolver,
|
||||
_well_known_cache=self.well_known_cache,
|
||||
|
|
|
@ -52,22 +52,26 @@ class EmailPusherTests(HomeserverTestCase):
|
|||
return d
|
||||
|
||||
config = self.default_config()
|
||||
config.email_enable_notifs = True
|
||||
config.start_pushers = True
|
||||
|
||||
config.email_template_dir = os.path.abspath(
|
||||
pkg_resources.resource_filename('synapse', 'res/templates')
|
||||
)
|
||||
config.email_notif_template_html = "notif_mail.html"
|
||||
config.email_notif_template_text = "notif_mail.txt"
|
||||
config.email_smtp_host = "127.0.0.1"
|
||||
config.email_smtp_port = 20
|
||||
config.require_transport_security = False
|
||||
config.email_smtp_user = None
|
||||
config.email_smtp_pass = None
|
||||
config.email_app_name = "Matrix"
|
||||
config.email_notif_from = "test@example.com"
|
||||
config.email_riot_base_url = None
|
||||
config["email"] = {
|
||||
"enable_notifs": True,
|
||||
"template_dir": os.path.abspath(
|
||||
pkg_resources.resource_filename('synapse', 'res/templates')
|
||||
),
|
||||
"expiry_template_html": "notice_expiry.html",
|
||||
"expiry_template_text": "notice_expiry.txt",
|
||||
"notif_template_html": "notif_mail.html",
|
||||
"notif_template_text": "notif_mail.txt",
|
||||
"smtp_host": "127.0.0.1",
|
||||
"smtp_port": 20,
|
||||
"require_transport_security": False,
|
||||
"smtp_user": None,
|
||||
"smtp_pass": None,
|
||||
"app_name": "Matrix",
|
||||
"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)
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ class HTTPPusherTests(HomeserverTestCase):
|
|||
m.post_json_get_json = post_json_get_json
|
||||
|
||||
config = self.default_config()
|
||||
config.start_pushers = True
|
||||
config["start_pushers"] = True
|
||||
|
||||
hs = self.setup_test_homeserver(config=config, simple_http_client=m)
|
||||
|
||||
|
|
|
@ -42,15 +42,18 @@ class ConsentResourceTestCase(unittest.HomeserverTestCase):
|
|||
def make_homeserver(self, reactor, clock):
|
||||
|
||||
config = self.default_config()
|
||||
config.user_consent_version = "1"
|
||||
config.public_baseurl = ""
|
||||
config.form_secret = "123abc"
|
||||
config["public_baseurl"] = "aaaa"
|
||||
config["form_secret"] = "123abc"
|
||||
|
||||
# Make some temporary templates...
|
||||
temp_consent_path = self.mktemp()
|
||||
os.mkdir(temp_consent_path)
|
||||
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:
|
||||
f.write("{{version}},{{has_consented}}")
|
||||
|
|
|
@ -32,7 +32,7 @@ class IdentityTestCase(unittest.HomeserverTestCase):
|
|||
def make_homeserver(self, reactor, clock):
|
||||
|
||||
config = self.default_config()
|
||||
config.enable_3pid_lookup = False
|
||||
config["enable_3pid_lookup"] = False
|
||||
self.hs = self.setup_test_homeserver(config=config)
|
||||
|
||||
return self.hs
|
||||
|
|
|
@ -34,7 +34,7 @@ class DirectoryTestCase(unittest.HomeserverTestCase):
|
|||
|
||||
def make_homeserver(self, reactor, clock):
|
||||
config = self.default_config()
|
||||
config.require_membership_for_aliases = True
|
||||
config["require_membership_for_aliases"] = True
|
||||
|
||||
self.hs = self.setup_test_homeserver(config=config)
|
||||
|
||||
|
|
|
@ -36,9 +36,9 @@ class EventStreamPermissionsTestCase(unittest.HomeserverTestCase):
|
|||
def make_homeserver(self, reactor, clock):
|
||||
|
||||
config = self.default_config()
|
||||
config.enable_registration_captcha = False
|
||||
config.enable_registration = True
|
||||
config.auto_join_rooms = []
|
||||
config["enable_registration_captcha"] = False
|
||||
config["enable_registration"] = True
|
||||
config["auto_join_rooms"] = []
|
||||
|
||||
hs = self.setup_test_homeserver(
|
||||
config=config, ratelimiter=NonCallableMock(spec_set=["can_do_action"])
|
||||
|
|
|
@ -171,7 +171,7 @@ class ProfilesRestrictedTestCase(unittest.HomeserverTestCase):
|
|||
def make_homeserver(self, reactor, clock):
|
||||
|
||||
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)
|
||||
|
||||
return self.hs
|
||||
|
|
|
@ -919,7 +919,7 @@ class PublicRoomsRestrictedTestCase(unittest.HomeserverTestCase):
|
|||
self.url = b"/_matrix/client/r0/publicRooms"
|
||||
|
||||
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)
|
||||
|
||||
return self.hs
|
||||
|
|
|
@ -36,9 +36,9 @@ class FallbackAuthTests(unittest.HomeserverTestCase):
|
|||
|
||||
config = self.default_config()
|
||||
|
||||
config.enable_registration_captcha = True
|
||||
config.recaptcha_public_key = "brokencake"
|
||||
config.registrations_require_3pid = []
|
||||
config["enable_registration_captcha"] = True
|
||||
config["recaptcha_public_key"] = "brokencake"
|
||||
config["registrations_require_3pid"] = []
|
||||
|
||||
hs = self.setup_test_homeserver(config=config)
|
||||
return hs
|
||||
|
|
|
@ -201,9 +201,11 @@ class AccountValidityTestCase(unittest.HomeserverTestCase):
|
|||
def make_homeserver(self, reactor, clock):
|
||||
config = self.default_config()
|
||||
# Test for account expiring after a week.
|
||||
config.enable_registration = True
|
||||
config.account_validity.enabled = True
|
||||
config.account_validity.period = 604800000 # Time in ms for 1 week
|
||||
config["enable_registration"] = True
|
||||
config["account_validity"] = {
|
||||
"enabled": True,
|
||||
"period": 604800000, # Time in ms for 1 week
|
||||
}
|
||||
self.hs = self.setup_test_homeserver(config=config)
|
||||
|
||||
return self.hs
|
||||
|
@ -299,14 +301,17 @@ class AccountValidityRenewalByEmailTestCase(unittest.HomeserverTestCase):
|
|||
|
||||
def make_homeserver(self, reactor, clock):
|
||||
config = self.default_config()
|
||||
|
||||
# Test for account expiring after a week and renewal emails being sent 2
|
||||
# days before expiry.
|
||||
config.enable_registration = True
|
||||
config.account_validity.enabled = True
|
||||
config.account_validity.renew_by_email_enabled = True
|
||||
config.account_validity.period = 604800000 # Time in ms for 1 week
|
||||
config.account_validity.renew_at = 172800000 # Time in ms for 2 days
|
||||
config.account_validity.renew_email_subject = "Renew your account"
|
||||
config["enable_registration"] = True
|
||||
config["account_validity"] = {
|
||||
"enabled": True,
|
||||
"period": 604800000, # Time in ms for 1 week
|
||||
"renew_at": 172800000, # Time in ms for 2 days
|
||||
"renew_by_email_enabled": True,
|
||||
"renew_email_subject": "Renew your account",
|
||||
}
|
||||
|
||||
# Email config.
|
||||
self.email_attempts = []
|
||||
|
@ -315,17 +320,23 @@ class AccountValidityRenewalByEmailTestCase(unittest.HomeserverTestCase):
|
|||
self.email_attempts.append((args, kwargs))
|
||||
return
|
||||
|
||||
config.email_template_dir = os.path.abspath(
|
||||
pkg_resources.resource_filename('synapse', 'res/templates')
|
||||
)
|
||||
config.email_expiry_template_html = "notice_expiry.html"
|
||||
config.email_expiry_template_text = "notice_expiry.txt"
|
||||
config.email_smtp_host = "127.0.0.1"
|
||||
config.email_smtp_port = 20
|
||||
config.require_transport_security = False
|
||||
config.email_smtp_user = None
|
||||
config.email_smtp_pass = None
|
||||
config.email_notif_from = "test@example.com"
|
||||
config["email"] = {
|
||||
"enable_notifs": True,
|
||||
"template_dir": os.path.abspath(
|
||||
pkg_resources.resource_filename('synapse', 'res/templates')
|
||||
),
|
||||
"expiry_template_html": "notice_expiry.html",
|
||||
"expiry_template_text": "notice_expiry.txt",
|
||||
"notif_template_html": "notif_mail.html",
|
||||
"notif_template_text": "notif_mail.txt",
|
||||
"smtp_host": "127.0.0.1",
|
||||
"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)
|
||||
|
||||
|
|
|
@ -25,13 +25,11 @@ from six.moves.urllib import parse
|
|||
from twisted.internet import defer, reactor
|
||||
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.filepath import MediaFilePaths
|
||||
from synapse.rest.media.v1.media_storage import MediaStorage
|
||||
from synapse.rest.media.v1.storage_provider import FileStorageProviderBackend
|
||||
from synapse.util.logcontext import make_deferred_yieldable
|
||||
from synapse.util.module_loader import load_module
|
||||
|
||||
from tests import unittest
|
||||
|
||||
|
@ -120,12 +118,14 @@ class MediaRepoTests(unittest.HomeserverTestCase):
|
|||
client.get_file = get_file
|
||||
|
||||
self.storage_path = self.mktemp()
|
||||
self.media_store_path = self.mktemp()
|
||||
os.mkdir(self.storage_path)
|
||||
os.mkdir(self.media_store_path)
|
||||
|
||||
config = self.default_config()
|
||||
config.media_store_path = self.storage_path
|
||||
config.thumbnail_requirements = {}
|
||||
config.max_image_pixels = 2000000
|
||||
config["media_store_path"] = self.media_store_path
|
||||
config["thumbnail_requirements"] = {}
|
||||
config["max_image_pixels"] = 2000000
|
||||
|
||||
provider_config = {
|
||||
"module": "synapse.rest.media.v1.storage_provider.FileStorageProviderBackend",
|
||||
|
@ -134,12 +134,7 @@ class MediaRepoTests(unittest.HomeserverTestCase):
|
|||
"store_remote": True,
|
||||
"config": {"directory": self.storage_path},
|
||||
}
|
||||
|
||||
loaded = list(load_module(provider_config)) + [
|
||||
MediaStorageProviderConfig(False, False, False)
|
||||
]
|
||||
|
||||
config.media_storage_providers = [loaded]
|
||||
config["media_storage_providers"] = [provider_config]
|
||||
|
||||
hs = self.setup_test_homeserver(config=config, http_client=client)
|
||||
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
import os
|
||||
|
||||
import attr
|
||||
from netaddr import IPSet
|
||||
|
||||
from twisted.internet._resolver import HostResolution
|
||||
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.web._newclient import ResponseDone
|
||||
|
||||
from synapse.config.repository import MediaStorageProviderConfig
|
||||
from synapse.util.module_loader import load_module
|
||||
|
||||
from tests import unittest
|
||||
from tests.server import FakeTransport
|
||||
|
||||
|
@ -67,23 +63,23 @@ class URLPreviewTests(unittest.HomeserverTestCase):
|
|||
|
||||
def make_homeserver(self, reactor, clock):
|
||||
|
||||
self.storage_path = self.mktemp()
|
||||
os.mkdir(self.storage_path)
|
||||
|
||||
config = self.default_config()
|
||||
config.url_preview_enabled = True
|
||||
config.max_spider_size = 9999999
|
||||
config.url_preview_ip_range_blacklist = IPSet(
|
||||
(
|
||||
"192.168.1.1",
|
||||
"1.0.0.0/8",
|
||||
"3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
|
||||
"2001:800::/21",
|
||||
)
|
||||
config["url_preview_enabled"] = True
|
||||
config["max_spider_size"] = 9999999
|
||||
config["url_preview_ip_range_blacklist"] = (
|
||||
"192.168.1.1",
|
||||
"1.0.0.0/8",
|
||||
"3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
|
||||
"2001:800::/21",
|
||||
)
|
||||
config.url_preview_ip_range_whitelist = IPSet(("1.1.1.1",))
|
||||
config.url_preview_url_blacklist = []
|
||||
config.media_store_path = self.storage_path
|
||||
config["url_preview_ip_range_whitelist"] = ("1.1.1.1",)
|
||||
config["url_preview_url_blacklist"] = []
|
||||
|
||||
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 = {
|
||||
"module": "synapse.rest.media.v1.storage_provider.FileStorageProviderBackend",
|
||||
|
@ -93,11 +89,7 @@ class URLPreviewTests(unittest.HomeserverTestCase):
|
|||
"config": {"directory": self.storage_path},
|
||||
}
|
||||
|
||||
loaded = list(load_module(provider_config)) + [
|
||||
MediaStorageProviderConfig(False, False, False)
|
||||
]
|
||||
|
||||
config.media_storage_providers = [loaded]
|
||||
config["media_storage_providers"] = [provider_config]
|
||||
|
||||
hs = self.setup_test_homeserver(config=config)
|
||||
|
||||
|
|
|
@ -227,6 +227,8 @@ class ThreadedMemoryReactorClock(MemoryReactorClock):
|
|||
"""
|
||||
|
||||
def __init__(self):
|
||||
self.threadpool = ThreadPool(self)
|
||||
|
||||
self._udp = []
|
||||
lookups = self.lookups = {}
|
||||
|
||||
|
@ -255,6 +257,37 @@ class ThreadedMemoryReactorClock(MemoryReactorClock):
|
|||
self.callLater(0, d.callback, True)
|
||||
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):
|
||||
"""
|
||||
|
@ -290,36 +323,10 @@ def setup_test_homeserver(cleanup_func, *args, **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:
|
||||
pool.runWithConnection = runWithConnection
|
||||
pool.runInteraction = runInteraction
|
||||
pool.threadpool = ThreadPool()
|
||||
pool.threadpool = ThreadPool(clock._reactor)
|
||||
pool.running = True
|
||||
return d
|
||||
|
||||
|
|
|
@ -12,6 +12,9 @@
|
|||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import os
|
||||
|
||||
import synapse.rest.admin
|
||||
from synapse.rest.client.v1 import login, room
|
||||
from synapse.rest.client.v2_alpha import sync
|
||||
|
@ -30,20 +33,27 @@ class ConsentNoticesTests(unittest.HomeserverTestCase):
|
|||
|
||||
def make_homeserver(self, reactor, clock):
|
||||
|
||||
tmpdir = self.mktemp()
|
||||
os.mkdir(tmpdir)
|
||||
self.consent_notice_message = "consent %(consent_uri)s"
|
||||
config = self.default_config()
|
||||
config.user_consent_version = "1"
|
||||
config.user_consent_server_notice_content = {
|
||||
"msgtype": "m.text",
|
||||
"body": self.consent_notice_message,
|
||||
config["user_consent"] = {
|
||||
"version": "1",
|
||||
"template_dir": tmpdir,
|
||||
"server_notice_content": {
|
||||
"msgtype": "m.text",
|
||||
"body": self.consent_notice_message,
|
||||
},
|
||||
}
|
||||
config.public_baseurl = "https://example.com/"
|
||||
config.form_secret = "123abc"
|
||||
config["public_baseurl"] = "https://example.com/"
|
||||
config["form_secret"] = "123abc"
|
||||
|
||||
config.server_notices_mxid = "@notices:test"
|
||||
config.server_notices_mxid_display_name = "test display name"
|
||||
config.server_notices_mxid_avatar_url = None
|
||||
config.server_notices_room_name = "Server Notices"
|
||||
config["server_notices"] = {
|
||||
"system_mxid_localpart": "notices",
|
||||
"system_mxid_display_name": "test display name",
|
||||
"system_mxid_avatar_url": None,
|
||||
"room_name": "Server Notices",
|
||||
}
|
||||
|
||||
hs = self.setup_test_homeserver(config=config)
|
||||
|
||||
|
|
|
@ -29,7 +29,12 @@ from tests import unittest
|
|||
class TestResourceLimitsServerNotices(unittest.HomeserverTestCase):
|
||||
def make_homeserver(self, reactor, clock):
|
||||
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)
|
||||
return hs
|
||||
|
@ -79,7 +84,7 @@ class TestResourceLimitsServerNotices(unittest.HomeserverTestCase):
|
|||
self._send_notice.assert_not_called()
|
||||
# Test when mau limiting disabled
|
||||
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._send_notice.assert_not_called()
|
||||
|
|
|
@ -168,7 +168,7 @@ class StateTestCase(unittest.TestCase):
|
|||
"get_state_resolution_handler",
|
||||
]
|
||||
)
|
||||
hs.config = default_config("tesths")
|
||||
hs.config = default_config("tesths", True)
|
||||
hs.get_datastore.return_value = self.store
|
||||
hs.get_state_handler.return_value = None
|
||||
hs.get_clock.return_value = MockClock()
|
||||
|
|
|
@ -27,6 +27,7 @@ import twisted.logger
|
|||
from twisted.internet.defer import Deferred
|
||||
from twisted.trial import unittest
|
||||
|
||||
from synapse.config.homeserver import HomeServerConfig
|
||||
from synapse.http.server import JsonResource
|
||||
from synapse.http.site import SynapseRequest
|
||||
from synapse.server import HomeServer
|
||||
|
@ -245,7 +246,7 @@ class HomeserverTestCase(TestCase):
|
|||
|
||||
def default_config(self, name="test"):
|
||||
"""
|
||||
Get a default HomeServer config object.
|
||||
Get a default HomeServer config dict.
|
||||
|
||||
Args:
|
||||
name (str): The homeserver name/domain.
|
||||
|
@ -335,7 +336,14 @@ class HomeserverTestCase(TestCase):
|
|||
kwargs.update(self._hs_args)
|
||||
if "config" not in kwargs:
|
||||
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)
|
||||
stor = hs.get_datastore()
|
||||
|
||||
|
|
130
tests/utils.py
130
tests/utils.py
|
@ -110,7 +110,7 @@ def setupdb():
|
|||
atexit.register(_cleanup)
|
||||
|
||||
|
||||
def default_config(name):
|
||||
def default_config(name, parse=False):
|
||||
"""
|
||||
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
|
||||
# parser happy
|
||||
"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()
|
||||
config.parse_config_dict(config_dict)
|
||||
if parse:
|
||||
config = HomeServerConfig()
|
||||
config.parse_config_dict(config_dict)
|
||||
return config
|
||||
|
||||
# TODO: move this stuff into config_dict or get rid of it
|
||||
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
|
||||
return config_dict
|
||||
|
||||
|
||||
class TestHomeServer(HomeServer):
|
||||
|
@ -223,7 +217,7 @@ def setup_test_homeserver(
|
|||
from twisted.internet import reactor
|
||||
|
||||
if config is None:
|
||||
config = default_config(name)
|
||||
config = default_config(name, parse=True)
|
||||
|
||||
config.ldap_enabled = False
|
||||
|
||||
|
|
Loading…
Reference in New Issue