diff --git a/changelog.d/12884.misc b/changelog.d/12884.misc
new file mode 100644
index 0000000000..56eead9472
--- /dev/null
+++ b/changelog.d/12884.misc
@@ -0,0 +1 @@
+Use constants for EDU types.
diff --git a/synapse/api/constants.py b/synapse/api/constants.py
index 4a0552e7e5..f03fdd6dae 100644
--- a/synapse/api/constants.py
+++ b/synapse/api/constants.py
@@ -137,7 +137,13 @@ class DeviceKeyAlgorithms:
class EduTypes:
- Presence: Final = "m.presence"
+ PRESENCE: Final = "m.presence"
+ TYPING: Final = "m.typing"
+ RECEIPT: Final = "m.receipt"
+ DEVICE_LIST_UPDATE: Final = "m.device_list_update"
+ SIGNING_KEY_UPDATE: Final = "m.signing_key_update"
+ UNSTABLE_SIGNING_KEY_UPDATE: Final = "org.matrix.signing_key_update"
+ DIRECT_TO_DEVICE: Final = "m.direct_to_device"
class RejectedReason:
diff --git a/synapse/api/filtering.py b/synapse/api/filtering.py
index b91ce06de7..b007147519 100644
--- a/synapse/api/filtering.py
+++ b/synapse/api/filtering.py
@@ -33,7 +33,7 @@ from typing import (
import jsonschema
from jsonschema import FormatChecker
-from synapse.api.constants import EventContentFields
+from synapse.api.constants import EduTypes, EventContentFields
from synapse.api.errors import SynapseError
from synapse.api.presence import UserPresenceState
from synapse.events import EventBase
@@ -347,7 +347,7 @@ class Filter:
user_id = event.user_id
field_matchers = {
"senders": lambda v: user_id == v,
- "types": lambda v: "m.presence" == v,
+ "types": lambda v: EduTypes.PRESENCE == v,
}
return self._check_fields(field_matchers)
else:
diff --git a/synapse/federation/federation_server.py b/synapse/federation/federation_server.py
index b8232e5257..5b227b85fd 100644
--- a/synapse/federation/federation_server.py
+++ b/synapse/federation/federation_server.py
@@ -1353,7 +1353,7 @@ class FederationHandlerRegistry:
self._edu_type_to_instance[edu_type] = instance_names
async def on_edu(self, edu_type: str, origin: str, content: dict) -> None:
- if not self.config.server.use_presence and edu_type == EduTypes.Presence:
+ if not self.config.server.use_presence and edu_type == EduTypes.PRESENCE:
return
# Check if we have a handler on this instance
diff --git a/synapse/federation/sender/per_destination_queue.py b/synapse/federation/sender/per_destination_queue.py
index 8983b5a53d..333ca9a97f 100644
--- a/synapse/federation/sender/per_destination_queue.py
+++ b/synapse/federation/sender/per_destination_queue.py
@@ -21,6 +21,7 @@ from typing import TYPE_CHECKING, Dict, Hashable, Iterable, List, Optional, Tupl
import attr
from prometheus_client import Counter
+from synapse.api.constants import EduTypes
from synapse.api.errors import (
FederationDeniedError,
HttpResponseException,
@@ -542,7 +543,7 @@ class PerDestinationQueue:
edu = Edu(
origin=self._server_name,
destination=self._destination,
- edu_type="m.receipt",
+ edu_type=EduTypes.RECEIPT,
content=self._pending_rrs,
)
self._pending_rrs = {}
@@ -592,7 +593,7 @@ class PerDestinationQueue:
Edu(
origin=self._server_name,
destination=self._destination,
- edu_type="m.direct_to_device",
+ edu_type=EduTypes.DIRECT_TO_DEVICE,
content=content,
)
for content in contents
@@ -670,7 +671,7 @@ class _TransactionQueueManager:
Edu(
origin=self.queue._server_name,
destination=self.queue._destination,
- edu_type="m.presence",
+ edu_type=EduTypes.PRESENCE,
content={
"push": [
format_user_presence_state(
diff --git a/synapse/federation/sender/transaction_manager.py b/synapse/federation/sender/transaction_manager.py
index 0c1cad86ab..75081810fd 100644
--- a/synapse/federation/sender/transaction_manager.py
+++ b/synapse/federation/sender/transaction_manager.py
@@ -16,6 +16,7 @@ from typing import TYPE_CHECKING, List
from prometheus_client import Gauge
+from synapse.api.constants import EduTypes
from synapse.api.errors import HttpResponseException
from synapse.events import EventBase
from synapse.federation.persistence import TransactionActions
@@ -126,7 +127,10 @@ class TransactionManager:
len(edus),
)
if issue_8631_logger.isEnabledFor(logging.DEBUG):
- DEVICE_UPDATE_EDUS = {"m.device_list_update", "m.signing_key_update"}
+ DEVICE_UPDATE_EDUS = {
+ EduTypes.DEVICE_LIST_UPDATE,
+ EduTypes.SIGNING_KEY_UPDATE,
+ }
device_list_updates = [
edu.content for edu in edus if edu.edu_type in DEVICE_UPDATE_EDUS
]
diff --git a/synapse/federation/transport/server/federation.py b/synapse/federation/transport/server/federation.py
index 57e8fb21b0..7dfb890661 100644
--- a/synapse/federation/transport/server/federation.py
+++ b/synapse/federation/transport/server/federation.py
@@ -27,6 +27,7 @@ from typing import (
from matrix_common.versionstring import get_distribution_version_string
from typing_extensions import Literal
+from synapse.api.constants import EduTypes
from synapse.api.errors import Codes, SynapseError
from synapse.api.room_versions import RoomVersions
from synapse.api.urls import FEDERATION_UNSTABLE_PREFIX, FEDERATION_V2_PREFIX
@@ -108,7 +109,10 @@ class FederationSendServlet(BaseFederationServerServlet):
)
if issue_8631_logger.isEnabledFor(logging.DEBUG):
- DEVICE_UPDATE_EDUS = ["m.device_list_update", "m.signing_key_update"]
+ DEVICE_UPDATE_EDUS = [
+ EduTypes.DEVICE_LIST_UPDATE,
+ EduTypes.SIGNING_KEY_UPDATE,
+ ]
device_list_updates = [
edu.get("content", {})
for edu in transaction_data.get("edus", [])
diff --git a/synapse/handlers/appservice.py b/synapse/handlers/appservice.py
index 1da7bcc85b..814553e098 100644
--- a/synapse/handlers/appservice.py
+++ b/synapse/handlers/appservice.py
@@ -19,7 +19,7 @@ from prometheus_client import Counter
from twisted.internet import defer
import synapse
-from synapse.api.constants import EventTypes
+from synapse.api.constants import EduTypes, EventTypes
from synapse.appservice import ApplicationService
from synapse.events import EventBase
from synapse.handlers.presence import format_user_presence_state
@@ -503,7 +503,7 @@ class ApplicationServicesHandler:
time_now = self.clock.time_msec()
events.extend(
{
- "type": "m.presence",
+ "type": EduTypes.PRESENCE,
"sender": event.user_id,
"content": format_user_presence_state(
event, time_now, include_user_id=False
diff --git a/synapse/handlers/device.py b/synapse/handlers/device.py
index b21e469865..438a549339 100644
--- a/synapse/handlers/device.py
+++ b/synapse/handlers/device.py
@@ -28,7 +28,7 @@ from typing import (
)
from synapse.api import errors
-from synapse.api.constants import EventTypes
+from synapse.api.constants import EduTypes, EventTypes
from synapse.api.errors import (
Codes,
FederationDeniedError,
@@ -279,7 +279,8 @@ class DeviceHandler(DeviceWorkerHandler):
federation_registry = hs.get_federation_registry()
federation_registry.register_edu_handler(
- "m.device_list_update", self.device_list_updater.incoming_device_list_update
+ EduTypes.DEVICE_LIST_UPDATE,
+ self.device_list_updater.incoming_device_list_update,
)
hs.get_distributor().observe("user_left_room", self.user_left_room)
diff --git a/synapse/handlers/devicemessage.py b/synapse/handlers/devicemessage.py
index 53668cce3b..444c08bc2e 100644
--- a/synapse/handlers/devicemessage.py
+++ b/synapse/handlers/devicemessage.py
@@ -15,7 +15,7 @@
import logging
from typing import TYPE_CHECKING, Any, Dict
-from synapse.api.constants import ToDeviceEventTypes
+from synapse.api.constants import EduTypes, ToDeviceEventTypes
from synapse.api.errors import SynapseError
from synapse.api.ratelimiting import Ratelimiter
from synapse.logging.context import run_in_background
@@ -59,11 +59,11 @@ class DeviceMessageHandler:
# to the appropriate worker.
if hs.get_instance_name() in hs.config.worker.writers.to_device:
hs.get_federation_registry().register_edu_handler(
- "m.direct_to_device", self.on_direct_to_device_edu
+ EduTypes.DIRECT_TO_DEVICE, self.on_direct_to_device_edu
)
else:
hs.get_federation_registry().register_instances_for_edu(
- "m.direct_to_device",
+ EduTypes.DIRECT_TO_DEVICE,
hs.config.worker.writers.to_device,
)
diff --git a/synapse/handlers/e2e_keys.py b/synapse/handlers/e2e_keys.py
index e6c2cfb8c8..52bb5c9c55 100644
--- a/synapse/handlers/e2e_keys.py
+++ b/synapse/handlers/e2e_keys.py
@@ -25,6 +25,7 @@ from unpaddedbase64 import decode_base64
from twisted.internet import defer
+from synapse.api.constants import EduTypes
from synapse.api.errors import CodeMessageException, Codes, NotFoundError, SynapseError
from synapse.logging.context import make_deferred_yieldable, run_in_background
from synapse.logging.opentracing import log_kv, set_tag, tag_args, trace
@@ -66,13 +67,13 @@ class E2eKeysHandler:
# Only register this edu handler on master as it requires writing
# device updates to the db
federation_registry.register_edu_handler(
- "m.signing_key_update",
+ EduTypes.SIGNING_KEY_UPDATE,
self._edu_updater.incoming_signing_key_update,
)
# also handle the unstable version
# FIXME: remove this when enough servers have upgraded
federation_registry.register_edu_handler(
- "org.matrix.signing_key_update",
+ EduTypes.UNSTABLE_SIGNING_KEY_UPDATE,
self._edu_updater.incoming_signing_key_update,
)
diff --git a/synapse/handlers/events.py b/synapse/handlers/events.py
index 82a5aac3dd..cb7e0ca7a8 100644
--- a/synapse/handlers/events.py
+++ b/synapse/handlers/events.py
@@ -113,7 +113,7 @@ class EventStreamHandler:
states = await presence_handler.get_states(users)
to_add.extend(
{
- "type": EduTypes.Presence,
+ "type": EduTypes.PRESENCE,
"content": format_user_presence_state(state, time_now),
}
for state in states
diff --git a/synapse/handlers/initial_sync.py b/synapse/handlers/initial_sync.py
index c06932a41a..fbdbeeedfd 100644
--- a/synapse/handlers/initial_sync.py
+++ b/synapse/handlers/initial_sync.py
@@ -274,7 +274,7 @@ class InitialSyncHandler:
"rooms": rooms_ret,
"presence": [
{
- "type": "m.presence",
+ "type": EduTypes.PRESENCE,
"content": format_user_presence_state(event, now),
}
for event in presence
@@ -439,7 +439,7 @@ class InitialSyncHandler:
return [
{
- "type": EduTypes.Presence,
+ "type": EduTypes.PRESENCE,
"content": format_user_presence_state(s, time_now),
}
for s in states
diff --git a/synapse/handlers/presence.py b/synapse/handlers/presence.py
index dd84e6c88b..bf112b9e1e 100644
--- a/synapse/handlers/presence.py
+++ b/synapse/handlers/presence.py
@@ -49,7 +49,7 @@ from prometheus_client import Counter
from typing_extensions import ContextManager
import synapse.metrics
-from synapse.api.constants import EventTypes, Membership, PresenceState
+from synapse.api.constants import EduTypes, EventTypes, Membership, PresenceState
from synapse.api.errors import SynapseError
from synapse.api.presence import UserPresenceState
from synapse.appservice import ApplicationService
@@ -394,7 +394,7 @@ class WorkerPresenceHandler(BasePresenceHandler):
# Route presence EDUs to the right worker
hs.get_federation_registry().register_instances_for_edu(
- "m.presence",
+ EduTypes.PRESENCE,
hs.config.worker.writers.presence,
)
@@ -649,7 +649,9 @@ class PresenceHandler(BasePresenceHandler):
federation_registry = hs.get_federation_registry()
- federation_registry.register_edu_handler("m.presence", self.incoming_presence)
+ federation_registry.register_edu_handler(
+ EduTypes.PRESENCE, self.incoming_presence
+ )
LaterGauge(
"synapse_handlers_presence_user_to_current_state_size",
diff --git a/synapse/handlers/receipts.py b/synapse/handlers/receipts.py
index e6a35f1d09..43d2882b0a 100644
--- a/synapse/handlers/receipts.py
+++ b/synapse/handlers/receipts.py
@@ -14,7 +14,7 @@
import logging
from typing import TYPE_CHECKING, Iterable, List, Optional, Tuple
-from synapse.api.constants import ReceiptTypes
+from synapse.api.constants import EduTypes, ReceiptTypes
from synapse.appservice import ApplicationService
from synapse.streams import EventSource
from synapse.types import (
@@ -52,11 +52,11 @@ class ReceiptsHandler:
# to the appropriate worker.
if hs.get_instance_name() in hs.config.worker.writers.receipts:
hs.get_federation_registry().register_edu_handler(
- "m.receipt", self._received_remote_receipt
+ EduTypes.RECEIPT, self._received_remote_receipt
)
else:
hs.get_federation_registry().register_instances_for_edu(
- "m.receipt",
+ EduTypes.RECEIPT,
hs.config.worker.writers.receipts,
)
diff --git a/synapse/handlers/typing.py b/synapse/handlers/typing.py
index bb00750bfd..0aeab86bbb 100644
--- a/synapse/handlers/typing.py
+++ b/synapse/handlers/typing.py
@@ -17,6 +17,7 @@ from typing import TYPE_CHECKING, Dict, Iterable, List, Optional, Set, Tuple
import attr
+from synapse.api.constants import EduTypes
from synapse.api.errors import AuthError, ShadowBanError, SynapseError
from synapse.appservice import ApplicationService
from synapse.metrics.background_process_metrics import (
@@ -68,7 +69,7 @@ class FollowerTypingHandler:
if hs.get_instance_name() not in hs.config.worker.writers.typing:
hs.get_federation_registry().register_instances_for_edu(
- "m.typing",
+ EduTypes.TYPING,
hs.config.worker.writers.typing,
)
@@ -143,7 +144,7 @@ class FollowerTypingHandler:
logger.debug("sending typing update to %s", domain)
self.federation.build_and_send_edu(
destination=domain,
- edu_type="m.typing",
+ edu_type=EduTypes.TYPING,
content={
"room_id": member.room_id,
"user_id": member.user_id,
@@ -218,7 +219,9 @@ class TypingWriterHandler(FollowerTypingHandler):
self.hs = hs
- hs.get_federation_registry().register_edu_handler("m.typing", self._recv_edu)
+ hs.get_federation_registry().register_edu_handler(
+ EduTypes.TYPING, self._recv_edu
+ )
hs.get_distributor().observe("user_left_room", self.user_left_room)
@@ -458,7 +461,7 @@ class TypingNotificationEventSource(EventSource[int, JsonDict]):
def _make_event_for(self, room_id: str) -> JsonDict:
typing = self.get_typing_handler()._room_typing[room_id]
return {
- "type": "m.typing",
+ "type": EduTypes.TYPING,
"room_id": room_id,
"content": {"user_ids": list(typing)},
}
diff --git a/synapse/notifier.py b/synapse/notifier.py
index ba23257f54..c2b66eec62 100644
--- a/synapse/notifier.py
+++ b/synapse/notifier.py
@@ -33,7 +33,7 @@ from prometheus_client import Counter
from twisted.internet import defer
-from synapse.api.constants import EventTypes, HistoryVisibility, Membership
+from synapse.api.constants import EduTypes, EventTypes, HistoryVisibility, Membership
from synapse.api.errors import AuthError
from synapse.events import EventBase
from synapse.handlers.presence import format_user_presence_state
@@ -632,7 +632,7 @@ class Notifier:
now = self.clock.time_msec()
new_events[:] = [
{
- "type": "m.presence",
+ "type": EduTypes.PRESENCE,
"content": format_user_presence_state(event, now),
}
for event in new_events
diff --git a/synapse/rest/client/sync.py b/synapse/rest/client/sync.py
index f596b792fa..8bbf35148d 100644
--- a/synapse/rest/client/sync.py
+++ b/synapse/rest/client/sync.py
@@ -16,7 +16,7 @@ import logging
from collections import defaultdict
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
-from synapse.api.constants import Membership, PresenceState
+from synapse.api.constants import EduTypes, Membership, PresenceState
from synapse.api.errors import Codes, StoreError, SynapseError
from synapse.api.filtering import FilterCollection
from synapse.api.presence import UserPresenceState
@@ -305,7 +305,7 @@ class SyncRestServlet(RestServlet):
return {
"events": [
{
- "type": "m.presence",
+ "type": EduTypes.PRESENCE,
"sender": event.user_id,
"content": format_user_presence_state(
event, time_now, include_user_id=False
diff --git a/synapse/storage/databases/main/devices.py b/synapse/storage/databases/main/devices.py
index 2df4dd4ed4..dd43bae784 100644
--- a/synapse/storage/databases/main/devices.py
+++ b/synapse/storage/databases/main/devices.py
@@ -28,6 +28,7 @@ from typing import (
cast,
)
+from synapse.api.constants import EduTypes
from synapse.api.errors import Codes, StoreError
from synapse.logging.opentracing import (
get_active_span_text_map,
@@ -419,7 +420,7 @@ class DeviceWorkerStore(SQLBaseStore):
# Add the updated cross-signing keys to the results list
for user_id, result in cross_signing_keys_by_user.items():
result["user_id"] = user_id
- results.append(("m.signing_key_update", result))
+ results.append((EduTypes.SIGNING_KEY_UPDATE, result))
# also send the unstable version
# FIXME: remove this when enough servers have upgraded
# and remove the length budgeting above.
@@ -545,7 +546,7 @@ class DeviceWorkerStore(SQLBaseStore):
else:
result["deleted"] = True
- results.append(("m.device_list_update", result))
+ results.append((EduTypes.DEVICE_LIST_UPDATE, result))
return results
diff --git a/synapse/storage/databases/main/receipts.py b/synapse/storage/databases/main/receipts.py
index cfa4d4924d..f74aa1e3f3 100644
--- a/synapse/storage/databases/main/receipts.py
+++ b/synapse/storage/databases/main/receipts.py
@@ -26,7 +26,7 @@ from typing import (
cast,
)
-from synapse.api.constants import ReceiptTypes
+from synapse.api.constants import EduTypes, ReceiptTypes
from synapse.replication.slave.storage._slaved_id_tracker import SlavedIdTracker
from synapse.replication.tcp.streams import ReceiptsStream
from synapse.storage._base import SQLBaseStore, db_to_json, make_in_list_sql_clause
@@ -363,7 +363,7 @@ class ReceiptsWorkerStore(SQLBaseStore):
row["user_id"]
] = db_to_json(row["data"])
- return [{"type": "m.receipt", "room_id": room_id, "content": content}]
+ return [{"type": EduTypes.RECEIPT, "room_id": room_id, "content": content}]
@cachedList(
cached_method_name="_get_linearized_receipts_for_room",
@@ -411,7 +411,7 @@ class ReceiptsWorkerStore(SQLBaseStore):
# receipts by room, event and type.
room_event = results.setdefault(
row["room_id"],
- {"type": "m.receipt", "room_id": row["room_id"], "content": {}},
+ {"type": EduTypes.RECEIPT, "room_id": row["room_id"], "content": {}},
)
# The content is of the form:
@@ -476,7 +476,7 @@ class ReceiptsWorkerStore(SQLBaseStore):
# receipts by room, event and type.
room_event = results.setdefault(
row["room_id"],
- {"type": "m.receipt", "room_id": row["room_id"], "content": {}},
+ {"type": EduTypes.RECEIPT, "room_id": row["room_id"], "content": {}},
)
# The content is of the form:
diff --git a/tests/api/test_filtering.py b/tests/api/test_filtering.py
index 985d6e397d..a269c477fb 100644
--- a/tests/api/test_filtering.py
+++ b/tests/api/test_filtering.py
@@ -20,7 +20,7 @@ from unittest.mock import patch
import jsonschema
from frozendict import frozendict
-from synapse.api.constants import EventContentFields
+from synapse.api.constants import EduTypes, EventContentFields
from synapse.api.errors import SynapseError
from synapse.api.filtering import Filter
from synapse.events import make_event_from_dict
@@ -85,13 +85,13 @@ class FilteringTestCase(unittest.HomeserverTestCase):
"org.matrix.not_labels": ["#work"],
},
"ephemeral": {
- "types": ["m.receipt", "m.typing"],
+ "types": [EduTypes.RECEIPT, EduTypes.TYPING],
"not_rooms": ["!726s6s6q:example.com"],
"not_senders": ["@spam:example.com"],
},
},
"presence": {
- "types": ["m.presence"],
+ "types": [EduTypes.PRESENCE],
"not_senders": ["@alice:example.com"],
},
"event_format": "client",
diff --git a/tests/events/test_presence_router.py b/tests/events/test_presence_router.py
index 3deb14c308..ffc3012a86 100644
--- a/tests/events/test_presence_router.py
+++ b/tests/events/test_presence_router.py
@@ -439,7 +439,7 @@ class PresenceRouterTestCase(FederatingHomeserverTestCase):
for edu in edus:
# Make sure we're only checking presence-type EDUs
- if edu["edu_type"] != EduTypes.Presence:
+ if edu["edu_type"] != EduTypes.PRESENCE:
continue
# EDUs can contain multiple presence updates
diff --git a/tests/federation/test_federation_sender.py b/tests/federation/test_federation_sender.py
index 6b26353d5e..b5be727fe4 100644
--- a/tests/federation/test_federation_sender.py
+++ b/tests/federation/test_federation_sender.py
@@ -19,7 +19,7 @@ from signedjson.types import BaseKey, SigningKey
from twisted.internet import defer
-from synapse.api.constants import RoomEncryptionAlgorithms
+from synapse.api.constants import EduTypes, RoomEncryptionAlgorithms
from synapse.rest import admin
from synapse.rest.client import login
from synapse.types import JsonDict, ReadReceipt
@@ -63,7 +63,7 @@ class FederationSenderReceiptsTestCases(HomeserverTestCase):
data["edus"],
[
{
- "edu_type": "m.receipt",
+ "edu_type": EduTypes.RECEIPT,
"content": {
"room_id": {
"m.read": {
@@ -103,7 +103,7 @@ class FederationSenderReceiptsTestCases(HomeserverTestCase):
data["edus"],
[
{
- "edu_type": "m.receipt",
+ "edu_type": EduTypes.RECEIPT,
"content": {
"room_id": {
"m.read": {
@@ -138,7 +138,7 @@ class FederationSenderReceiptsTestCases(HomeserverTestCase):
data["edus"],
[
{
- "edu_type": "m.receipt",
+ "edu_type": EduTypes.RECEIPT,
"content": {
"room_id": {
"m.read": {
@@ -322,8 +322,10 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
# expect signing key update edu
self.assertEqual(len(self.edus), 2)
- self.assertEqual(self.edus.pop(0)["edu_type"], "m.signing_key_update")
- self.assertEqual(self.edus.pop(0)["edu_type"], "org.matrix.signing_key_update")
+ self.assertEqual(self.edus.pop(0)["edu_type"], EduTypes.SIGNING_KEY_UPDATE)
+ self.assertEqual(
+ self.edus.pop(0)["edu_type"], EduTypes.UNSTABLE_SIGNING_KEY_UPDATE
+ )
# sign the devices
d1_json = build_device_dict(u1, "D1", device1_signing_key)
@@ -348,7 +350,7 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
self.assertEqual(len(self.edus), 2)
stream_id = None # FIXME: there is a discontinuity in the stream IDs: see #7142
for edu in self.edus:
- self.assertEqual(edu["edu_type"], "m.device_list_update")
+ self.assertEqual(edu["edu_type"], EduTypes.DEVICE_LIST_UPDATE)
c = edu["content"]
if stream_id is not None:
self.assertEqual(c["prev_id"], [stream_id])
@@ -388,7 +390,7 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
# expect three edus, in an unknown order
self.assertEqual(len(self.edus), 3)
for edu in self.edus:
- self.assertEqual(edu["edu_type"], "m.device_list_update")
+ self.assertEqual(edu["edu_type"], EduTypes.DEVICE_LIST_UPDATE)
c = edu["content"]
self.assertGreaterEqual(
c.items(),
@@ -435,7 +437,7 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
self.assertEqual(len(self.edus), 3)
stream_id = None
for edu in self.edus:
- self.assertEqual(edu["edu_type"], "m.device_list_update")
+ self.assertEqual(edu["edu_type"], EduTypes.DEVICE_LIST_UPDATE)
c = edu["content"]
self.assertEqual(c["prev_id"], [stream_id] if stream_id is not None else [])
if stream_id is not None:
@@ -487,7 +489,7 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
# there should be a single update for this user.
self.assertEqual(len(self.edus), 1)
edu = self.edus.pop(0)
- self.assertEqual(edu["edu_type"], "m.device_list_update")
+ self.assertEqual(edu["edu_type"], EduTypes.DEVICE_LIST_UPDATE)
c = edu["content"]
# synapse uses an empty prev_id list to indicate "needs a full resync".
@@ -544,7 +546,7 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
# ... and we should get a single update for this user.
self.assertEqual(len(self.edus), 1)
edu = self.edus.pop(0)
- self.assertEqual(edu["edu_type"], "m.device_list_update")
+ self.assertEqual(edu["edu_type"], EduTypes.DEVICE_LIST_UPDATE)
c = edu["content"]
# synapse uses an empty prev_id list to indicate "needs a full resync".
@@ -560,7 +562,7 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
"""Check that the given EDU is an update for the given device
Returns the stream_id.
"""
- self.assertEqual(edu["edu_type"], "m.device_list_update")
+ self.assertEqual(edu["edu_type"], EduTypes.DEVICE_LIST_UPDATE)
content = edu["content"]
expected = {
diff --git a/tests/federation/transport/test_server.py b/tests/federation/transport/test_server.py
index 5f001c33b0..cfd550a04b 100644
--- a/tests/federation/transport/test_server.py
+++ b/tests/federation/transport/test_server.py
@@ -12,6 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+from synapse.api.constants import EduTypes
+
from tests import unittest
from tests.unittest import DEBUG, override_config
@@ -50,7 +52,7 @@ class RoomDirectoryFederationTests(unittest.FederatingHomeserverTestCase):
"/_matrix/federation/v1/send/txn_id_1234/",
content={
"edus": [
- {"edu_type": "m.device_list_update", "content": {"foo": "bar"}}
+ {"edu_type": EduTypes.DEVICE_LIST_UPDATE, "content": {"foo": "bar"}}
],
"pdus": [],
},
diff --git a/tests/handlers/test_appservice.py b/tests/handlers/test_appservice.py
index 53e7a5d81b..0e100c404d 100644
--- a/tests/handlers/test_appservice.py
+++ b/tests/handlers/test_appservice.py
@@ -22,6 +22,7 @@ from twisted.test.proto_helpers import MemoryReactor
import synapse.rest.admin
import synapse.storage
+from synapse.api.constants import EduTypes
from synapse.appservice import (
ApplicationService,
TransactionOneTimeKeyCounts,
@@ -476,7 +477,7 @@ class ApplicationServicesHandlerSendEventsTestCase(unittest.HomeserverTestCase):
# Check that the ephemeral event is a read receipt with the expected structure
latest_read_receipt = all_ephemeral_events[-1]
- self.assertEqual(latest_read_receipt["type"], "m.receipt")
+ self.assertEqual(latest_read_receipt["type"], EduTypes.RECEIPT)
event_id = list(latest_read_receipt["content"].keys())[0]
self.assertEqual(
diff --git a/tests/handlers/test_receipts.py b/tests/handlers/test_receipts.py
index 78807cdcfc..a95868b5c0 100644
--- a/tests/handlers/test_receipts.py
+++ b/tests/handlers/test_receipts.py
@@ -15,7 +15,7 @@
from copy import deepcopy
from typing import List
-from synapse.api.constants import ReceiptTypes
+from synapse.api.constants import EduTypes, ReceiptTypes
from synapse.types import JsonDict
from tests import unittest
@@ -39,7 +39,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
}
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
- "type": "m.receipt",
+ "type": EduTypes.RECEIPT,
}
],
[],
@@ -64,7 +64,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
},
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
- "type": "m.receipt",
+ "type": EduTypes.RECEIPT,
}
],
[
@@ -79,7 +79,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
}
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
- "type": "m.receipt",
+ "type": EduTypes.RECEIPT,
}
],
)
@@ -105,7 +105,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
},
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
- "type": "m.receipt",
+ "type": EduTypes.RECEIPT,
}
],
[
@@ -120,7 +120,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
}
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
- "type": "m.receipt",
+ "type": EduTypes.RECEIPT,
}
],
)
@@ -140,7 +140,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
},
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
- "type": "m.receipt",
+ "type": EduTypes.RECEIPT,
}
],
[
@@ -155,7 +155,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
},
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
- "type": "m.receipt",
+ "type": EduTypes.RECEIPT,
}
],
)
@@ -174,7 +174,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
},
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
- "type": "m.receipt",
+ "type": EduTypes.RECEIPT,
},
{
"content": {
@@ -187,7 +187,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
},
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
- "type": "m.receipt",
+ "type": EduTypes.RECEIPT,
},
],
[
@@ -202,7 +202,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
}
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
- "type": "m.receipt",
+ "type": EduTypes.RECEIPT,
}
],
)
@@ -224,7 +224,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
},
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
- "type": "m.receipt",
+ "type": EduTypes.RECEIPT,
},
],
[
@@ -237,7 +237,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
},
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
- "type": "m.receipt",
+ "type": EduTypes.RECEIPT,
},
],
)
@@ -266,7 +266,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
},
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
- "type": "m.receipt",
+ "type": EduTypes.RECEIPT,
}
],
[
@@ -291,7 +291,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
}
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
- "type": "m.receipt",
+ "type": EduTypes.RECEIPT,
}
],
)
@@ -310,7 +310,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
}
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
- "type": "m.receipt",
+ "type": EduTypes.RECEIPT,
}
]
original_events = deepcopy(events)
diff --git a/tests/handlers/test_typing.py b/tests/handlers/test_typing.py
index 5f2e26a5fc..057256cecd 100644
--- a/tests/handlers/test_typing.py
+++ b/tests/handlers/test_typing.py
@@ -21,6 +21,7 @@ from twisted.internet import defer
from twisted.test.proto_helpers import MemoryReactor
from twisted.web.resource import Resource
+from synapse.api.constants import EduTypes
from synapse.api.errors import AuthError
from synapse.federation.transport.server import TransportLayerServer
from synapse.server import HomeServer
@@ -184,7 +185,7 @@ class TypingNotificationsTestCase(unittest.HomeserverTestCase):
events[0],
[
{
- "type": "m.typing",
+ "type": EduTypes.TYPING,
"room_id": ROOM_ID,
"content": {"user_ids": [U_APPLE.to_string()]},
}
@@ -209,7 +210,7 @@ class TypingNotificationsTestCase(unittest.HomeserverTestCase):
"farm",
path="/_matrix/federation/v1/send/1000000",
data=_expect_edu_transaction(
- "m.typing",
+ EduTypes.TYPING,
content={
"room_id": ROOM_ID,
"user_id": U_APPLE.to_string(),
@@ -231,7 +232,7 @@ class TypingNotificationsTestCase(unittest.HomeserverTestCase):
"PUT",
"/_matrix/federation/v1/send/1000000",
_make_edu_transaction_json(
- "m.typing",
+ EduTypes.TYPING,
content={
"room_id": ROOM_ID,
"user_id": U_ONION.to_string(),
@@ -254,7 +255,7 @@ class TypingNotificationsTestCase(unittest.HomeserverTestCase):
events[0],
[
{
- "type": "m.typing",
+ "type": EduTypes.TYPING,
"room_id": ROOM_ID,
"content": {"user_ids": [U_ONION.to_string()]},
}
@@ -270,7 +271,7 @@ class TypingNotificationsTestCase(unittest.HomeserverTestCase):
"PUT",
"/_matrix/federation/v1/send/1000000",
_make_edu_transaction_json(
- "m.typing",
+ EduTypes.TYPING,
content={
"room_id": OTHER_ROOM_ID,
"user_id": U_ONION.to_string(),
@@ -324,7 +325,7 @@ class TypingNotificationsTestCase(unittest.HomeserverTestCase):
"farm",
path="/_matrix/federation/v1/send/1000000",
data=_expect_edu_transaction(
- "m.typing",
+ EduTypes.TYPING,
content={
"room_id": ROOM_ID,
"user_id": U_APPLE.to_string(),
@@ -345,7 +346,13 @@ class TypingNotificationsTestCase(unittest.HomeserverTestCase):
)
self.assertEqual(
events[0],
- [{"type": "m.typing", "room_id": ROOM_ID, "content": {"user_ids": []}}],
+ [
+ {
+ "type": EduTypes.TYPING,
+ "room_id": ROOM_ID,
+ "content": {"user_ids": []},
+ }
+ ],
)
def test_typing_timeout(self) -> None:
@@ -379,7 +386,7 @@ class TypingNotificationsTestCase(unittest.HomeserverTestCase):
events[0],
[
{
- "type": "m.typing",
+ "type": EduTypes.TYPING,
"room_id": ROOM_ID,
"content": {"user_ids": [U_APPLE.to_string()]},
}
@@ -402,7 +409,13 @@ class TypingNotificationsTestCase(unittest.HomeserverTestCase):
)
self.assertEqual(
events[0],
- [{"type": "m.typing", "room_id": ROOM_ID, "content": {"user_ids": []}}],
+ [
+ {
+ "type": EduTypes.TYPING,
+ "room_id": ROOM_ID,
+ "content": {"user_ids": []},
+ }
+ ],
)
# SYN-230 - see if we can still set after timeout
@@ -433,7 +446,7 @@ class TypingNotificationsTestCase(unittest.HomeserverTestCase):
events[0],
[
{
- "type": "m.typing",
+ "type": EduTypes.TYPING,
"room_id": ROOM_ID,
"content": {"user_ids": [U_APPLE.to_string()]},
}
diff --git a/tests/module_api/test_api.py b/tests/module_api/test_api.py
index 8bc84aaaca..169e29b590 100644
--- a/tests/module_api/test_api.py
+++ b/tests/module_api/test_api.py
@@ -399,7 +399,7 @@ class ModuleApiTestCase(HomeserverTestCase):
for edu in edus:
# Make sure we're only checking presence-type EDUs
- if edu["edu_type"] != EduTypes.Presence:
+ if edu["edu_type"] != EduTypes.PRESENCE:
continue
# EDUs can contain multiple presence updates
diff --git a/tests/rest/client/test_events.py b/tests/rest/client/test_events.py
index 1b1392fa2f..a9b7db9db2 100644
--- a/tests/rest/client/test_events.py
+++ b/tests/rest/client/test_events.py
@@ -19,6 +19,7 @@ from unittest.mock import Mock
from twisted.test.proto_helpers import MemoryReactor
import synapse.rest.admin
+from synapse.api.constants import EduTypes
from synapse.rest.client import events, login, room
from synapse.server import HomeServer
from synapse.util import Clock
@@ -103,7 +104,7 @@ class EventStreamPermissionsTestCase(unittest.HomeserverTestCase):
c
for c in channel.json_body["chunk"]
if not (
- c.get("type") == "m.presence"
+ c.get("type") == EduTypes.PRESENCE
and c["content"].get("user_id") == self.user_id
)
]
diff --git a/tests/rest/client/test_rooms.py b/tests/rest/client/test_rooms.py
index d0197aca94..f523d89b8f 100644
--- a/tests/rest/client/test_rooms.py
+++ b/tests/rest/client/test_rooms.py
@@ -26,6 +26,7 @@ from twisted.test.proto_helpers import MemoryReactor
import synapse.rest.admin
from synapse.api.constants import (
+ EduTypes,
EventContentFields,
EventTypes,
Membership,
@@ -1412,7 +1413,7 @@ class RoomInitialSyncTestCase(RoomBase):
e["content"]["user_id"]: e for e in channel.json_body["presence"]
}
self.assertTrue(self.user_id in presence_by_user)
- self.assertEqual("m.presence", presence_by_user[self.user_id]["type"])
+ self.assertEqual(EduTypes.PRESENCE, presence_by_user[self.user_id]["type"])
class RoomMessageListTestCase(RoomBase):
diff --git a/tests/rest/client/test_sendtodevice.py b/tests/rest/client/test_sendtodevice.py
index c3942889e1..6435800fa1 100644
--- a/tests/rest/client/test_sendtodevice.py
+++ b/tests/rest/client/test_sendtodevice.py
@@ -12,6 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+from synapse.api.constants import EduTypes
from synapse.rest import admin
from synapse.rest.client import login, sendtodevice, sync
@@ -139,7 +140,7 @@ class SendToDeviceTestCase(HomeserverTestCase):
for i in range(3):
self.get_success(
federation_registry.on_edu(
- "m.direct_to_device",
+ EduTypes.DIRECT_TO_DEVICE,
"remote_server",
{
"sender": "@user:remote_server",
@@ -172,7 +173,7 @@ class SendToDeviceTestCase(HomeserverTestCase):
# and we can send more messages
self.get_success(
federation_registry.on_edu(
- "m.direct_to_device",
+ EduTypes.DIRECT_TO_DEVICE,
"remote_server",
{
"sender": "@user:remote_server",
diff --git a/tests/rest/client/test_shadow_banned.py b/tests/rest/client/test_shadow_banned.py
index ae5ada3be7..d9bd8c4a28 100644
--- a/tests/rest/client/test_shadow_banned.py
+++ b/tests/rest/client/test_shadow_banned.py
@@ -17,7 +17,7 @@ from unittest.mock import Mock, patch
from twisted.test.proto_helpers import MemoryReactor
import synapse.rest.admin
-from synapse.api.constants import EventTypes
+from synapse.api.constants import EduTypes, EventTypes
from synapse.rest.client import (
directory,
login,
@@ -226,7 +226,7 @@ class RoomTestCase(_ShadowBannedBase):
events[0],
[
{
- "type": "m.typing",
+ "type": EduTypes.TYPING,
"room_id": room_id,
"content": {"user_ids": [self.other_user_id]},
}
diff --git a/tests/rest/client/test_sync.py b/tests/rest/client/test_sync.py
index 74b6560cbc..e3efd1f1b0 100644
--- a/tests/rest/client/test_sync.py
+++ b/tests/rest/client/test_sync.py
@@ -22,6 +22,7 @@ from twisted.test.proto_helpers import MemoryReactor
import synapse.rest.admin
from synapse.api.constants import (
+ EduTypes,
EventContentFields,
EventTypes,
ReceiptTypes,
@@ -504,7 +505,7 @@ class ReadReceiptsTestCase(unittest.HomeserverTestCase):
# Checks if event is a read receipt
def is_read_receipt(event: JsonDict) -> bool:
- return event["type"] == "m.receipt"
+ return event["type"] == EduTypes.RECEIPT
# Sync
channel = self.make_request(
diff --git a/tests/rest/client/test_typing.py b/tests/rest/client/test_typing.py
index d6da510773..61b66d7685 100644
--- a/tests/rest/client/test_typing.py
+++ b/tests/rest/client/test_typing.py
@@ -17,6 +17,7 @@
from twisted.test.proto_helpers import MemoryReactor
+from synapse.api.constants import EduTypes
from synapse.rest.client import room
from synapse.server import HomeServer
from synapse.types import UserID
@@ -67,7 +68,7 @@ class RoomTypingTestCase(unittest.HomeserverTestCase):
events[0],
[
{
- "type": "m.typing",
+ "type": EduTypes.TYPING,
"room_id": self.room_id,
"content": {"user_ids": [self.user_id]},
}
diff --git a/tests/storage/test_devices.py b/tests/storage/test_devices.py
index bbf079b25b..f37505b6cf 100644
--- a/tests/storage/test_devices.py
+++ b/tests/storage/test_devices.py
@@ -13,6 +13,7 @@
# limitations under the License.
import synapse.api.errors
+from synapse.api.constants import EduTypes
from tests.unittest import HomeserverTestCase
@@ -266,10 +267,12 @@ class DeviceStoreTestCase(HomeserverTestCase):
# (This is a temporary arrangement for backwards compatibility!)
self.assertEqual(len(device_updates), 2, device_updates)
self.assertEqual(
- device_updates[0][0], "m.signing_key_update", device_updates[0]
+ device_updates[0][0], EduTypes.SIGNING_KEY_UPDATE, device_updates[0]
)
self.assertEqual(
- device_updates[1][0], "org.matrix.signing_key_update", device_updates[1]
+ device_updates[1][0],
+ EduTypes.UNSTABLE_SIGNING_KEY_UPDATE,
+ device_updates[1],
)
# Check there are no more device updates left.
|