diff --git a/synapse/api/constants.py b/synapse/api/constants.py
index b668da4a26..4fc8b79a40 100644
--- a/synapse/api/constants.py
+++ b/synapse/api/constants.py
@@ -68,6 +68,7 @@ class EventTypes(object):
PowerLevels = "m.room.power_levels"
Aliases = "m.room.aliases"
Redaction = "m.room.redaction"
+ Feedback = "m.room.message.feedback"
# These are used for validation
Message = "m.room.message"
diff --git a/synapse/api/events/__init__.py b/synapse/api/events/__init__.py
deleted file mode 100644
index 22939d011a..0000000000
--- a/synapse/api/events/__init__.py
+++ /dev/null
@@ -1,148 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2014 OpenMarket Ltd
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-from synapse.util.jsonobject import JsonEncodedObject
-
-
-def serialize_event(hs, e):
- # FIXME(erikj): To handle the case of presence events and the like
- if not isinstance(e, SynapseEvent):
- return e
-
- # Should this strip out None's?
- d = {k: v for k, v in e.get_dict().items()}
- if "age_ts" in d:
- d["age"] = int(hs.get_clock().time_msec()) - d["age_ts"]
- del d["age_ts"]
-
- return d
-
-
-class SynapseEvent(JsonEncodedObject):
-
- """Base class for Synapse events. These are JSON objects which must abide
- by a certain well-defined structure.
- """
-
- # Attributes that are currently assumed by the federation side:
- # Mandatory:
- # - event_id
- # - room_id
- # - type
- # - is_state
- #
- # Optional:
- # - state_key (mandatory when is_state is True)
- # - prev_events (these can be filled out by the federation layer itself.)
- # - prev_state
-
- valid_keys = [
- "event_id",
- "type",
- "room_id",
- "user_id", # sender/initiator
- "content", # HTTP body, JSON
- "state_key",
- "age_ts",
- "prev_content",
- "replaces_state",
- "redacted_because",
- "origin_server_ts",
- ]
-
- internal_keys = [
- "is_state",
- "depth",
- "destinations",
- "origin",
- "outlier",
- "redacted",
- "prev_events",
- "hashes",
- "signatures",
- "prev_state",
- "auth_events",
- "state_hash",
- ]
-
- required_keys = [
- "event_id",
- "room_id",
- "content",
- ]
-
- outlier = False
-
- def __init__(self, raises=True, **kwargs):
- super(SynapseEvent, self).__init__(**kwargs)
- # if "content" in kwargs:
- # self.check_json(self.content, raises=raises)
-
- def get_content_template(self):
- """ Retrieve the JSON template for this event as a dict.
-
- The template must be a dict representing the JSON to match. Only
- required keys should be present. The values of the keys in the template
- are checked via type() to the values of the same keys in the actual
- event JSON.
-
- NB: If loading content via json.loads, you MUST define strings as
- unicode.
-
- For example:
- Content:
- {
- "name": u"bob",
- "age": 18,
- "friends": [u"mike", u"jill"]
- }
- Template:
- {
- "name": u"string",
- "age": 0,
- "friends": [u"string"]
- }
- The values "string" and 0 could be anything, so long as the types
- are the same as the content.
- """
- raise NotImplementedError("get_content_template not implemented.")
-
- def get_pdu_json(self, time_now=None):
- pdu_json = self.get_full_dict()
- pdu_json.pop("destinations", None)
- pdu_json.pop("outlier", None)
- pdu_json.pop("replaces_state", None)
- pdu_json.pop("redacted", None)
- pdu_json.pop("prev_content", None)
- state_hash = pdu_json.pop("state_hash", None)
- if state_hash is not None:
- pdu_json.setdefault("unsigned", {})["state_hash"] = state_hash
- content = pdu_json.get("content", {})
- content.pop("prev", None)
- if time_now is not None and "age_ts" in pdu_json:
- age = time_now - pdu_json["age_ts"]
- pdu_json.setdefault("unsigned", {})["age"] = int(age)
- del pdu_json["age_ts"]
- user_id = pdu_json.pop("user_id")
- pdu_json["sender"] = user_id
- return pdu_json
-
-
-class SynapseStateEvent(SynapseEvent):
-
- def __init__(self, **kwargs):
- if "state_key" not in kwargs:
- kwargs["state_key"] = ""
- super(SynapseStateEvent, self).__init__(**kwargs)
diff --git a/synapse/api/events/factory.py b/synapse/api/events/factory.py
deleted file mode 100644
index 1b84e2b445..0000000000
--- a/synapse/api/events/factory.py
+++ /dev/null
@@ -1,90 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2014 OpenMarket Ltd
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-from synapse.api.events.room import (
- RoomTopicEvent, MessageEvent, RoomMemberEvent, FeedbackEvent,
- InviteJoinEvent, RoomConfigEvent, RoomNameEvent, GenericEvent,
- RoomPowerLevelsEvent, RoomJoinRulesEvent,
- RoomCreateEvent,
- RoomRedactionEvent,
-)
-
-from synapse.types import EventID
-
-from synapse.util.stringutils import random_string
-
-
-class EventFactory(object):
-
- _event_classes = [
- RoomTopicEvent,
- RoomNameEvent,
- MessageEvent,
- RoomMemberEvent,
- FeedbackEvent,
- InviteJoinEvent,
- RoomConfigEvent,
- RoomPowerLevelsEvent,
- RoomJoinRulesEvent,
- RoomCreateEvent,
- RoomRedactionEvent,
- ]
-
- def __init__(self, hs):
- self._event_list = {} # dict of TYPE to event class
- for event_class in EventFactory._event_classes:
- self._event_list[event_class.TYPE] = event_class
-
- self.clock = hs.get_clock()
- self.hs = hs
-
- self.event_id_count = 0
-
- def create_event_id(self):
- i = str(self.event_id_count)
- self.event_id_count += 1
-
- local_part = str(int(self.clock.time())) + i + random_string(5)
-
- e_id = EventID.create(local_part, self.hs.hostname)
-
- return e_id.to_string()
-
- def create_event(self, etype=None, **kwargs):
- kwargs["type"] = etype
- if "event_id" not in kwargs:
- kwargs["event_id"] = self.create_event_id()
- kwargs["origin"] = self.hs.hostname
- else:
- ev_id = self.hs.parse_eventid(kwargs["event_id"])
- kwargs["origin"] = ev_id.domain
-
- if "origin_server_ts" not in kwargs:
- kwargs["origin_server_ts"] = int(self.clock.time_msec())
-
- # The "age" key is a delta timestamp that should be converted into an
- # absolute timestamp the minute we see it.
- if "age" in kwargs:
- kwargs["age_ts"] = int(self.clock.time_msec()) - int(kwargs["age"])
- del kwargs["age"]
- elif "age_ts" not in kwargs:
- kwargs["age_ts"] = int(self.clock.time_msec())
-
- if etype in self._event_list:
- handler = self._event_list[etype]
- else:
- handler = GenericEvent
-
- return handler(**kwargs)
diff --git a/synapse/api/events/room.py b/synapse/api/events/room.py
deleted file mode 100644
index 8c4ac45d02..0000000000
--- a/synapse/api/events/room.py
+++ /dev/null
@@ -1,170 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2014 OpenMarket Ltd
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-from synapse.api.constants import Feedback, Membership
-from synapse.api.errors import SynapseError
-from . import SynapseEvent, SynapseStateEvent
-
-
-class GenericEvent(SynapseEvent):
- def get_content_template(self):
- return {}
-
-
-class RoomTopicEvent(SynapseEvent):
- TYPE = "m.room.topic"
-
- internal_keys = SynapseEvent.internal_keys + [
- "topic",
- ]
-
- def __init__(self, **kwargs):
- kwargs["state_key"] = ""
- if "topic" in kwargs["content"]:
- kwargs["topic"] = kwargs["content"]["topic"]
- super(RoomTopicEvent, self).__init__(**kwargs)
-
- def get_content_template(self):
- return {"topic": u"string"}
-
-
-class RoomNameEvent(SynapseEvent):
- TYPE = "m.room.name"
-
- internal_keys = SynapseEvent.internal_keys + [
- "name",
- ]
-
- def __init__(self, **kwargs):
- kwargs["state_key"] = ""
- if "name" in kwargs["content"]:
- kwargs["name"] = kwargs["content"]["name"]
- super(RoomNameEvent, self).__init__(**kwargs)
-
- def get_content_template(self):
- return {"name": u"string"}
-
-
-class RoomMemberEvent(SynapseEvent):
- TYPE = "m.room.member"
-
- valid_keys = SynapseEvent.valid_keys + [
- # target is the state_key
- "membership", # action
- ]
-
- def __init__(self, **kwargs):
- if "membership" not in kwargs:
- kwargs["membership"] = kwargs.get("content", {}).get("membership")
- if not kwargs["membership"] in Membership.LIST:
- raise SynapseError(400, "Bad membership value.")
- super(RoomMemberEvent, self).__init__(**kwargs)
-
- def get_content_template(self):
- return {"membership": u"string"}
-
-
-class MessageEvent(SynapseEvent):
- TYPE = "m.room.message"
-
- valid_keys = SynapseEvent.valid_keys + [
- "msg_id", # unique per room + user combo
- ]
-
- def __init__(self, **kwargs):
- super(MessageEvent, self).__init__(**kwargs)
-
- def get_content_template(self):
- return {"msgtype": u"string"}
-
-
-class FeedbackEvent(SynapseEvent):
- TYPE = "m.room.message.feedback"
-
- valid_keys = SynapseEvent.valid_keys
-
- def __init__(self, **kwargs):
- super(FeedbackEvent, self).__init__(**kwargs)
- if not kwargs["content"]["type"] in Feedback.LIST:
- raise SynapseError(400, "Bad feedback value.")
-
- def get_content_template(self):
- return {
- "type": u"string",
- "target_event_id": u"string"
- }
-
-
-class InviteJoinEvent(SynapseEvent):
- TYPE = "m.room.invite_join"
-
- valid_keys = SynapseEvent.valid_keys + [
- # target_user_id is the state_key
- "target_host",
- ]
-
- def __init__(self, **kwargs):
- super(InviteJoinEvent, self).__init__(**kwargs)
-
- def get_content_template(self):
- return {}
-
-
-class RoomConfigEvent(SynapseEvent):
- TYPE = "m.room.config"
-
- def __init__(self, **kwargs):
- kwargs["state_key"] = ""
- super(RoomConfigEvent, self).__init__(**kwargs)
-
- def get_content_template(self):
- return {}
-
-
-class RoomCreateEvent(SynapseStateEvent):
- TYPE = "m.room.create"
-
- def get_content_template(self):
- return {}
-
-
-class RoomJoinRulesEvent(SynapseStateEvent):
- TYPE = "m.room.join_rules"
-
- def get_content_template(self):
- return {}
-
-
-class RoomPowerLevelsEvent(SynapseStateEvent):
- TYPE = "m.room.power_levels"
-
- def get_content_template(self):
- return {}
-
-
-class RoomAliasesEvent(SynapseStateEvent):
- TYPE = "m.room.aliases"
-
- def get_content_template(self):
- return {}
-
-
-class RoomRedactionEvent(SynapseEvent):
- TYPE = "m.room.redaction"
-
- valid_keys = SynapseEvent.valid_keys + ["redacts"]
-
- def get_content_template(self):
- return {}
diff --git a/synapse/api/events/utils.py b/synapse/api/events/utils.py
deleted file mode 100644
index d6019d56eb..0000000000
--- a/synapse/api/events/utils.py
+++ /dev/null
@@ -1,85 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2014 OpenMarket Ltd
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-from .room import (
- RoomMemberEvent, RoomJoinRulesEvent, RoomPowerLevelsEvent,
- RoomAliasesEvent, RoomCreateEvent,
-)
-
-
-def prune_event(event):
- """ Returns a pruned version of the given event, which removes all keys we
- don't know about or think could potentially be dodgy.
-
- This is used when we "redact" an event. We want to remove all fields that
- the user has specified, but we do want to keep necessary information like
- type, state_key etc.
- """
- event_type = event.type
-
- allowed_keys = [
- "event_id",
- "user_id",
- "room_id",
- "hashes",
- "signatures",
- "content",
- "type",
- "state_key",
- "depth",
- "prev_events",
- "prev_state",
- "auth_events",
- "origin",
- "origin_server_ts",
- ]
-
- new_content = {}
-
- def add_fields(*fields):
- for field in fields:
- if field in event.content:
- new_content[field] = event.content[field]
-
- if event_type == RoomMemberEvent.TYPE:
- add_fields("membership")
- elif event_type == RoomCreateEvent.TYPE:
- add_fields("creator")
- elif event_type == RoomJoinRulesEvent.TYPE:
- add_fields("join_rule")
- elif event_type == RoomPowerLevelsEvent.TYPE:
- add_fields(
- "users",
- "users_default",
- "events",
- "events_default",
- "events_default",
- "state_default",
- "ban",
- "kick",
- "redact",
- )
- elif event_type == RoomAliasesEvent.TYPE:
- add_fields("aliases")
-
- allowed_fields = {
- k: v
- for k, v in event.get_full_dict().items()
- if k in allowed_keys
- }
-
- allowed_fields["content"] = new_content
-
- return type(event)(**allowed_fields)
diff --git a/synapse/api/events/validator.py b/synapse/api/events/validator.py
deleted file mode 100644
index 067215f6ef..0000000000
--- a/synapse/api/events/validator.py
+++ /dev/null
@@ -1,87 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2014 OpenMarket Ltd
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-from synapse.api.errors import SynapseError, Codes
-
-
-class EventValidator(object):
- def __init__(self, hs):
- pass
-
- def validate(self, event):
- """Checks the given JSON content abides by the rules of the template.
-
- Args:
- content : A JSON object to check.
- raises: True to raise a SynapseError if the check fails.
- Returns:
- True if the content passes the template. Returns False if the check
- fails and raises=False.
- Raises:
- SynapseError if the check fails and raises=True.
- """
- # recursively call to inspect each layer
- err_msg = self._check_json_template(
- event.content,
- event.get_content_template()
- )
- if err_msg:
- raise SynapseError(400, err_msg, Codes.BAD_JSON)
- else:
- return True
-
- def _check_json_template(self, content, template):
- """Check content and template matches.
-
- If the template is a dict, each key in the dict will be validated with
- the content, else it will just compare the types of content and
- template. This basic type check is required because this function will
- be recursively called and could be called with just strs or ints.
-
- Args:
- content: The content to validate.
- template: The validation template.
- Returns:
- str: An error message if the validation fails, else None.
- """
- if type(content) != type(template):
- return "Mismatched types: %s" % template
-
- if type(template) == dict:
- for key in template:
- if key not in content:
- return "Missing %s key" % key
-
- if type(content[key]) != type(template[key]):
- return "Key %s is of the wrong type (got %s, want %s)" % (
- key, type(content[key]), type(template[key]))
-
- if type(content[key]) == dict:
- # we must go deeper
- msg = self._check_json_template(
- content[key],
- template[key]
- )
- if msg:
- return msg
- elif type(content[key]) == list:
- # make sure each item type in content matches the template
- for entry in content[key]:
- msg = self._check_json_template(
- entry,
- template[key][0]
- )
- if msg:
- return msg
diff --git a/synapse/federation/replication.py b/synapse/federation/replication.py
index 6388bb98e2..9f8aadccca 100644
--- a/synapse/federation/replication.py
+++ b/synapse/federation/replication.py
@@ -74,7 +74,6 @@ class ReplicationLayer(object):
self._clock = hs.get_clock()
- self.event_factory = hs.get_event_factory()
self.event_builder_factory = hs.get_event_builder_factory()
def set_handler(self, handler):
diff --git a/synapse/handlers/directory.py b/synapse/handlers/directory.py
index 4b0869cd9f..404baea796 100644
--- a/synapse/handlers/directory.py
+++ b/synapse/handlers/directory.py
@@ -18,7 +18,7 @@ from twisted.internet import defer
from ._base import BaseHandler
from synapse.api.errors import SynapseError, Codes, CodeMessageException
-from synapse.api.events.room import RoomAliasesEvent
+from synapse.api.constants import EventTypes
import logging
@@ -150,7 +150,7 @@ class DirectoryHandler(BaseHandler):
msg_handler = self.hs.get_handlers().message_handler
yield msg_handler.create_and_send_event({
- "type": RoomAliasesEvent.TYPE,
+ "type": EventTypes.Aliases,
"state_key": self.hs.hostname,
"room_id": room_id,
"sender": user_id,
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py
index c00f5a7031..16a104c0e2 100644
--- a/synapse/handlers/federation.py
+++ b/synapse/handlers/federation.py
@@ -22,8 +22,7 @@ from synapse.events.utils import prune_event
from synapse.api.errors import (
AuthError, FederationError, SynapseError, StoreError,
)
-from synapse.api.events.room import RoomMemberEvent, RoomCreateEvent
-from synapse.api.constants import Membership
+from synapse.api.constants import EventTypes, Membership
from synapse.util.logutils import log_function
from synapse.util.async import run_on_reactor
from synapse.crypto.event_signing import (
@@ -225,7 +224,7 @@ class FederationHandler(BaseHandler):
if not backfilled:
extra_users = []
- if event.type == RoomMemberEvent.TYPE:
+ if event.type == EventTypes.Member:
target_user_id = event.state_key
target_user = self.hs.parse_userid(target_user_id)
extra_users.append(target_user)
@@ -234,7 +233,7 @@ class FederationHandler(BaseHandler):
event, extra_users=extra_users
)
- if event.type == RoomMemberEvent.TYPE:
+ if event.type == EventTypes.Member:
if event.membership == Membership.JOIN:
user = self.hs.parse_userid(event.state_key)
yield self.distributor.fire(
@@ -333,7 +332,8 @@ class FederationHandler(BaseHandler):
event = pdu
# We should assert some things.
- assert(event.type == RoomMemberEvent.TYPE)
+ # FIXME: Do this in a nicer way
+ assert(event.type == EventTypes.Member)
assert(event.user_id == joinee)
assert(event.state_key == joinee)
assert(event.room_id == room_id)
@@ -450,7 +450,7 @@ class FederationHandler(BaseHandler):
process it until the other server has signed it and sent it back.
"""
builder = self.event_builder_factory.new({
- "type": RoomMemberEvent.TYPE,
+ "type": EventTypes.Member,
"content": {"membership": Membership.JOIN},
"room_id": room_id,
"sender": user_id,
@@ -492,7 +492,7 @@ class FederationHandler(BaseHandler):
)
extra_users = []
- if event.type == RoomMemberEvent.TYPE:
+ if event.type == EventTypes.Member:
target_user_id = event.state_key
target_user = self.hs.parse_userid(target_user_id)
extra_users.append(target_user)
@@ -501,7 +501,7 @@ class FederationHandler(BaseHandler):
event, extra_users=extra_users
)
- if event.type == RoomMemberEvent.TYPE:
+ if event.type == EventTypes.Member:
if event.content["membership"] == Membership.JOIN:
user = self.hs.parse_userid(event.state_key)
yield self.distributor.fire(
@@ -514,7 +514,7 @@ class FederationHandler(BaseHandler):
for k, s in context.current_state.items():
try:
- if k[0] == RoomMemberEvent.TYPE:
+ if k[0] == EventTypes.Member:
if s.content["membership"] == Membership.JOIN:
destinations.add(
self.hs.parse_userid(s.state_key).domain
@@ -731,10 +731,10 @@ class FederationHandler(BaseHandler):
event.event_id, event.signatures,
)
- if event.type == RoomMemberEvent.TYPE and not event.auth_events:
+ if event.type == EventTypes.Member and not event.auth_events:
if len(event.prev_events) == 1:
c = yield self.store.get_event(event.prev_events[0][0])
- if c.type == RoomCreateEvent.TYPE:
+ if c.type == EventTypes.Create:
context.auth_events[(c.type, c.state_key)] = c
logger.debug(
diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py
index 1eed38c6d1..baf372fdad 100644
--- a/synapse/handlers/message.py
+++ b/synapse/handlers/message.py
@@ -35,7 +35,6 @@ class MessageHandler(BaseHandler):
super(MessageHandler, self).__init__(hs)
self.hs = hs
self.clock = hs.get_clock()
- self.event_factory = hs.get_event_factory()
self.validator = EventValidator()
@defer.inlineCallbacks
diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py
index f7cc869225..8567d7409d 100644
--- a/synapse/handlers/room.py
+++ b/synapse/handlers/room.py
@@ -17,12 +17,8 @@
from twisted.internet import defer
from synapse.types import UserID, RoomAlias, RoomID
-from synapse.api.constants import Membership, JoinRules
+from synapse.api.constants import EventTypes, Membership, JoinRules
from synapse.api.errors import StoreError, SynapseError
-from synapse.api.events.room import (
- RoomMemberEvent, RoomCreateEvent, RoomPowerLevelsEvent,
- RoomTopicEvent, RoomNameEvent, RoomJoinRulesEvent,
-)
from synapse.util import stringutils
from synapse.util.async import run_on_reactor
from ._base import BaseHandler
@@ -131,7 +127,7 @@ class RoomCreationHandler(BaseHandler):
if "name" in config:
name = config["name"]
yield msg_handler.create_and_send_event({
- "type": RoomNameEvent.TYPE,
+ "type": EventTypes.Name,
"room_id": room_id,
"sender": user_id,
"content": {"name": name},
@@ -140,7 +136,7 @@ class RoomCreationHandler(BaseHandler):
if "topic" in config:
topic = config["topic"]
yield msg_handler.create_and_send_event({
- "type": RoomTopicEvent.TYPE,
+ "type": EventTypes.Topic,
"room_id": room_id,
"sender": user_id,
"content": {"topic": topic},
@@ -148,7 +144,7 @@ class RoomCreationHandler(BaseHandler):
for invitee in invite_list:
yield msg_handler.create_and_send_event({
- "type": RoomMemberEvent.TYPE,
+ "type": EventTypes.Member,
"state_key": invitee,
"room_id": room_id,
"user_id": user_id,
@@ -186,12 +182,12 @@ class RoomCreationHandler(BaseHandler):
return e
creation_event = create(
- etype=RoomCreateEvent.TYPE,
+ etype=EventTypes.Create,
content={"creator": creator.to_string()},
)
join_event = create(
- etype=RoomMemberEvent.TYPE,
+ etype=EventTypes.Member,
state_key=creator_id,
content={
"membership": Membership.JOIN,
@@ -199,15 +195,15 @@ class RoomCreationHandler(BaseHandler):
)
power_levels_event = create(
- etype=RoomPowerLevelsEvent.TYPE,
+ etype=EventTypes.PowerLevels,
content={
"users": {
creator.to_string(): 100,
},
"users_default": 0,
"events": {
- RoomNameEvent.TYPE: 100,
- RoomPowerLevelsEvent.TYPE: 100,
+ EventTypes.Name: 100,
+ EventTypes.PowerLevels: 100,
},
"events_default": 0,
"state_default": 50,
@@ -219,7 +215,7 @@ class RoomCreationHandler(BaseHandler):
join_rule = JoinRules.PUBLIC if is_public else JoinRules.INVITE
join_rules_event = create(
- etype=RoomJoinRulesEvent.TYPE,
+ etype=EventTypes.JoinRules,
content={"join_rule": join_rule},
)
@@ -344,7 +340,7 @@ class RoomMemberHandler(BaseHandler):
target_user_id = event.state_key
prev_state = context.current_state.get(
- (RoomMemberEvent.TYPE, target_user_id),
+ (EventTypes.Member, target_user_id),
None
)
@@ -396,7 +392,7 @@ class RoomMemberHandler(BaseHandler):
content.update({"membership": Membership.JOIN})
builder = self.event_builder_factory.new({
- "type": RoomMemberEvent.TYPE,
+ "type": EventTypes.Member,
"state_key": joinee.to_string(),
"room_id": room_id,
"sender": joinee.to_string(),
diff --git a/synapse/rest/__init__.py b/synapse/rest/__init__.py
index e391e5678d..a59630ec96 100644
--- a/synapse/rest/__init__.py
+++ b/synapse/rest/__init__.py
@@ -28,7 +28,7 @@ class RestServletFactory(object):
speaking, they serve as wrappers around events and the handlers that
process them.
- See synapse.api.events for information on synapse events.
+ See synapse.events for information on synapse events.
"""
def __init__(self, hs):
diff --git a/synapse/rest/base.py b/synapse/rest/base.py
index 72bb66ddda..06eda2587c 100644
--- a/synapse/rest/base.py
+++ b/synapse/rest/base.py
@@ -67,8 +67,6 @@ class RestServlet(object):
self.auth = hs.get_auth()
self.txns = HttpTransactionStore()
- self.validator = hs.get_event_validator()
-
def register(self, http_server):
""" Register this servlet with the given HTTP server. """
if hasattr(self, "PATTERN"):
diff --git a/synapse/rest/room.py b/synapse/rest/room.py
index 1a527d27c1..0e2d5fbaae 100644
--- a/synapse/rest/room.py
+++ b/synapse/rest/room.py
@@ -19,8 +19,7 @@ from twisted.internet import defer
from base import RestServlet, client_path_pattern
from synapse.api.errors import SynapseError, Codes
from synapse.streams.config import PaginationConfig
-from synapse.api.events.room import RoomMemberEvent, RoomRedactionEvent
-from synapse.api.constants import Membership
+from synapse.api.constants import EventTypes, Membership
import json
import logging
@@ -239,7 +238,7 @@ class JoinRoomAliasServlet(RestServlet):
msg_handler = self.handlers.message_handler
yield msg_handler.create_and_send_event(
{
- "type": RoomMemberEvent.TYPE,
+ "type": EventTypes.Member,
"content": {"membership": Membership.JOIN},
"room_id": identifier.to_string(),
"sender": user.to_string(),
@@ -403,7 +402,7 @@ class RoomMembershipRestServlet(RestServlet):
msg_handler = self.handlers.message_handler
yield msg_handler.create_and_send_event(
{
- "type": RoomMemberEvent.TYPE,
+ "type": EventTypes.Member,
"content": {"membership": unicode(membership_action)},
"room_id": room_id,
"sender": user.to_string(),
@@ -441,7 +440,7 @@ class RoomRedactEventRestServlet(RestServlet):
msg_handler = self.handlers.message_handler
event = yield msg_handler.create_and_send_event(
{
- "type": RoomRedactionEvent.TYPE,
+ "type": EventTypes.Redaction,
"content": content,
"room_id": room_id,
"sender": user.to_string(),
diff --git a/synapse/server.py b/synapse/server.py
index 1c0703c51f..e4021481e8 100644
--- a/synapse/server.py
+++ b/synapse/server.py
@@ -21,8 +21,6 @@
# Imports required for the default HomeServer() implementation
from synapse.federation import initialize_http_replication
from synapse.events.utils import serialize_event
-from synapse.api.events.factory import EventFactory
-from synapse.api.events.validator import EventValidator
from synapse.notifier import Notifier
from synapse.api.auth import Auth
from synapse.handlers import Handlers
@@ -66,7 +64,6 @@ class BaseHomeServer(object):
'persistence_service',
'replication_layer',
'datastore',
- 'event_factory',
'handlers',
'auth',
'rest_servlet_factory',
@@ -83,7 +80,6 @@ class BaseHomeServer(object):
'event_sources',
'ratelimiter',
'keyring',
- 'event_validator',
'event_builder_factory',
]
@@ -198,9 +194,6 @@ class HomeServer(BaseHomeServer):
def build_datastore(self):
return DataStore(self)
- def build_event_factory(self):
- return EventFactory(self)
-
def build_handlers(self):
return Handlers(self)
@@ -231,9 +224,6 @@ class HomeServer(BaseHomeServer):
def build_keyring(self):
return Keyring(self)
- def build_event_validator(self):
- return EventValidator(self)
-
def build_event_builder_factory(self):
return EventBuilderFactory(
clock=self.get_clock(),
diff --git a/synapse/state.py b/synapse/state.py
index f9ab5faf9e..d2763cdd9a 100644
--- a/synapse/state.py
+++ b/synapse/state.py
@@ -18,7 +18,7 @@ from twisted.internet import defer
from synapse.util.logutils import log_function
from synapse.util.async import run_on_reactor
-from synapse.api.events.room import RoomPowerLevelsEvent
+from synapse.api.constants import EventTypes
from collections import namedtuple
@@ -271,7 +271,7 @@ class StateHandler(object):
def _get_power_level_from_event_state(self, event, user_id):
if hasattr(event, "old_state_events") and event.old_state_events:
- key = (RoomPowerLevelsEvent.TYPE, "", )
+ key = (EventTypes.PowerLevels, "", )
power_level_event = event.old_state_events.get(key)
level = None
if power_level_event:
diff --git a/synapse/storage/__init__.py b/synapse/storage/__init__.py
index e75eaa92d5..5c079da5ba 100644
--- a/synapse/storage/__init__.py
+++ b/synapse/storage/__init__.py
@@ -15,12 +15,8 @@
from twisted.internet import defer
-from synapse.api.events.room import (
- RoomMemberEvent, RoomTopicEvent, FeedbackEvent, RoomNameEvent,
- RoomRedactionEvent,
-)
-
from synapse.util.logutils import log_function
+from synapse.api.constants import EventTypes
from .directory import DirectoryStore
from .feedback import FeedbackStore
@@ -136,15 +132,15 @@ class DataStore(RoomMemberStore, RoomStore,
def _persist_event_txn(self, txn, event, context, backfilled,
stream_ordering=None, is_new_state=True,
current_state=None):
- if event.type == RoomMemberEvent.TYPE:
+ if event.type == EventTypes.Member:
self._store_room_member_txn(txn, event)
- elif event.type == FeedbackEvent.TYPE:
+ elif event.type == EventTypes.Feedback:
self._store_feedback_txn(txn, event)
- elif event.type == RoomNameEvent.TYPE:
+ elif event.type == EventTypes.Name:
self._store_room_name_txn(txn, event)
- elif event.type == RoomTopicEvent.TYPE:
+ elif event.type == EventTypes.Topic:
self._store_room_topic_txn(txn, event)
- elif event.type == RoomRedactionEvent.TYPE:
+ elif event.type == EventTypes.Redaction:
self._store_redaction(txn, event)
outlier = False
diff --git a/tests/events/__init__.py b/tests/events/__init__.py
deleted file mode 100644
index 9bff9ec169..0000000000
--- a/tests/events/__init__.py
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2014 OpenMarket Ltd
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
diff --git a/tests/events/test_events.py b/tests/events/test_events.py
deleted file mode 100644
index 91d1d44fee..0000000000
--- a/tests/events/test_events.py
+++ /dev/null
@@ -1,217 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2014 OpenMarket Ltd
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-from synapse.api.events import SynapseEvent
-from synapse.api.events.validator import EventValidator
-from synapse.api.errors import SynapseError
-
-from tests import unittest
-
-
-class SynapseTemplateCheckTestCase(unittest.TestCase):
-
- def setUp(self):
- self.validator = EventValidator(None)
-
- def tearDown(self):
- pass
-
- def test_top_level_keys(self):
- template = {
- "person": {},
- "friends": ["string"]
- }
-
- content = {
- "person": {"name": "bob"},
- "friends": ["jill", "mike"]
- }
-
- event = MockSynapseEvent(template)
- event.content = content
- self.assertTrue(self.validator.validate(event))
-
- content = {
- "person": {"name": "bob"},
- "friends": ["jill"],
- "enemies": ["mike"]
- }
- event.content = content
- self.assertTrue(self.validator.validate(event))
-
- content = {
- "person": {"name": "bob"},
- # missing friends
- "enemies": ["mike", "jill"]
- }
- event.content = content
- self.assertRaises(
- SynapseError,
- self.validator.validate,
- event
- )
-
- def test_lists(self):
- template = {
- "person": {},
- "friends": [{"name":"string"}]
- }
-
- content = {
- "person": {"name": "bob"},
- "friends": ["jill", "mike"] # should be in objects
- }
-
- event = MockSynapseEvent(template)
- event.content = content
- self.assertRaises(
- SynapseError,
- self.validator.validate,
- event
- )
-
- content = {
- "person": {"name": "bob"},
- "friends": [{"name": "jill"}, {"name": "mike"}]
- }
- event.content = content
- self.assertTrue(self.validator.validate(event))
-
- def test_nested_lists(self):
- template = {
- "results": {
- "families": [
- {
- "name": "string",
- "members": [
- {}
- ]
- }
- ]
- }
- }
-
- content = {
- "results": {
- "families": [
- {
- "name": "Smith",
- "members": [
- "Alice", "Bob" # wrong types
- ]
- }
- ]
- }
- }
-
- event = MockSynapseEvent(template)
- event.content = content
- self.assertRaises(
- SynapseError,
- self.validator.validate,
- event
- )
-
- content = {
- "results": {
- "families": [
- {
- "name": "Smith",
- "members": [
- {"name": "Alice"}, {"name": "Bob"}
- ]
- }
- ]
- }
- }
- event.content = content
- self.assertTrue(self.validator.validate(event))
-
- def test_nested_keys(self):
- template = {
- "person": {
- "attributes": {
- "hair": "string",
- "eye": "string"
- },
- "age": 0,
- "fav_books": ["string"]
- }
- }
- event = MockSynapseEvent(template)
-
- content = {
- "person": {
- "attributes": {
- "hair": "brown",
- "eye": "green",
- "skin": "purple"
- },
- "age": 33,
- "fav_books": ["lotr", "hobbit"],
- "fav_music": ["abba", "beatles"]
- }
- }
-
- event.content = content
- self.assertTrue(self.validator.validate(event))
-
- content = {
- "person": {
- "attributes": {
- "hair": "brown"
- # missing eye
- },
- "age": 33,
- "fav_books": ["lotr", "hobbit"],
- "fav_music": ["abba", "beatles"]
- }
- }
-
- event.content = content
- self.assertRaises(
- SynapseError,
- self.validator.validate,
- event
- )
-
- content = {
- "person": {
- "attributes": {
- "hair": "brown",
- "eye": "green",
- "skin": "purple"
- },
- "age": 33,
- "fav_books": "nothing", # should be a list
- }
- }
-
- event.content = content
- self.assertRaises(
- SynapseError,
- self.validator.validate,
- event
- )
-
-
-class MockSynapseEvent(SynapseEvent):
-
- def __init__(self, template):
- self.template = template
-
- def get_content_template(self):
- return self.template
-
diff --git a/tests/handlers/test_federation.py b/tests/handlers/test_federation.py
index 91f7351087..ed351367cc 100644
--- a/tests/handlers/test_federation.py
+++ b/tests/handlers/test_federation.py
@@ -16,10 +16,7 @@
from twisted.internet import defer
from tests import unittest
-from synapse.api.events.room import (
- MessageEvent,
-)
-
+from synapse.api.constants import EventTypes
from synapse.events import FrozenEvent
from synapse.handlers.federation import FederationHandler
from synapse.server import HomeServer
@@ -79,7 +76,7 @@ class FederationTestCase(unittest.TestCase):
@defer.inlineCallbacks
def test_msg(self):
pdu = FrozenEvent({
- "type": MessageEvent.TYPE,
+ "type": EventTypes.Message,
"room_id": "foo",
"content": {"msgtype": u"fooo"},
"origin_server_ts": 0,
diff --git a/tests/handlers/test_room.py b/tests/handlers/test_room.py
index 9c63f2a882..83493cae20 100644
--- a/tests/handlers/test_room.py
+++ b/tests/handlers/test_room.py
@@ -17,9 +17,6 @@
from twisted.internet import defer
from tests import unittest
-from synapse.api.events.room import (
- RoomMemberEvent,
-)
from synapse.api.constants import EventTypes, Membership
from synapse.handlers.room import RoomMemberHandler, RoomCreationHandler
from synapse.handlers.profile import ProfileHandler
@@ -102,7 +99,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
content = {"membership": Membership.INVITE}
builder = self.hs.get_event_builder_factory().new({
- "type": RoomMemberEvent.TYPE,
+ "type": EventTypes.Member,
"sender": user_id,
"state_key": target_user_id,
"room_id": room_id,
@@ -115,11 +112,11 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
def annotate(_, ctx):
ctx.current_state = {
- (RoomMemberEvent.TYPE, "@alice:green"): self._create_member(
+ (EventTypes.Member, "@alice:green"): self._create_member(
user_id="@alice:green",
room_id=room_id,
),
- (RoomMemberEvent.TYPE, "@bob:red"): self._create_member(
+ (EventTypes.Member, "@bob:red"): self._create_member(
user_id="@bob:red",
room_id=room_id,
),
@@ -131,7 +128,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
def add_auth(_, ctx):
ctx.auth_events = ctx.current_state[
- (RoomMemberEvent.TYPE, "@bob:red")
+ (EventTypes.Member, "@bob:red")
]
return defer.succeed(True)
@@ -181,7 +178,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
self.distributor.observe("user_joined_room", join_signal_observer)
builder = self.hs.get_event_builder_factory().new({
- "type": RoomMemberEvent.TYPE,
+ "type": EventTypes.Member,
"sender": user_id,
"state_key": user_id,
"room_id": room_id,
@@ -194,7 +191,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
def annotate(_, ctx):
ctx.current_state = {
- (RoomMemberEvent.TYPE, "@bob:red"): self._create_member(
+ (EventTypes.Member, "@bob:red"): self._create_member(
user_id="@bob:red",
room_id=room_id,
membership=Membership.INVITE
@@ -207,7 +204,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
def add_auth(_, ctx):
ctx.auth_events = ctx.current_state[
- (RoomMemberEvent.TYPE, "@bob:red")
+ (EventTypes.Member, "@bob:red")
]
return defer.succeed(True)
@@ -238,7 +235,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
def _create_member(self, user_id, room_id, membership=Membership.JOIN):
builder = self.hs.get_event_builder_factory().new({
- "type": RoomMemberEvent.TYPE,
+ "type": EventTypes.Member,
"sender": user_id,
"state_key": user_id,
"room_id": room_id,
@@ -254,7 +251,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
user = self.hs.parse_userid(user_id)
builder = self.hs.get_event_builder_factory().new({
- "type": RoomMemberEvent.TYPE,
+ "type": EventTypes.Member,
"sender": user_id,
"state_key": user_id,
"room_id": room_id,
@@ -267,7 +264,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
def annotate(_, ctx):
ctx.current_state = {
- (RoomMemberEvent.TYPE, "@bob:red"): self._create_member(
+ (EventTypes.Member, "@bob:red"): self._create_member(
user_id="@bob:red",
room_id=room_id,
membership=Membership.JOIN
@@ -280,7 +277,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
def add_auth(_, ctx):
ctx.auth_events = ctx.current_state[
- (RoomMemberEvent.TYPE, "@bob:red")
+ (EventTypes.Member, "@bob:red")
]
return defer.succeed(True)
diff --git a/tests/storage/test_redaction.py b/tests/storage/test_redaction.py
index f670e154c3..9806fbc69b 100644
--- a/tests/storage/test_redaction.py
+++ b/tests/storage/test_redaction.py
@@ -18,10 +18,7 @@ from tests import unittest
from twisted.internet import defer
from synapse.server import HomeServer
-from synapse.api.constants import Membership
-from synapse.api.events.room import (
- RoomMemberEvent, MessageEvent, RoomRedactionEvent,
-)
+from synapse.api.constants import EventTypes, Membership
from tests.utils import SQLiteMemoryDbPool, MockKey
@@ -64,7 +61,7 @@ class RedactionTestCase(unittest.TestCase):
content = {"membership": membership}
content.update(extra_content)
builder = self.event_builder_factory.new({
- "type": RoomMemberEvent.TYPE,
+ "type": EventTypes.Member,
"sender": user.to_string(),
"state_key": user.to_string(),
"room_id": room.to_string(),
@@ -84,7 +81,7 @@ class RedactionTestCase(unittest.TestCase):
self.depth += 1
builder = self.event_builder_factory.new({
- "type": MessageEvent.TYPE,
+ "type": EventTypes.Message,
"sender": user.to_string(),
"state_key": user.to_string(),
"room_id": room.to_string(),
@@ -102,7 +99,7 @@ class RedactionTestCase(unittest.TestCase):
@defer.inlineCallbacks
def inject_redaction(self, room, event_id, user, reason):
builder = self.event_builder_factory.new({
- "type": RoomRedactionEvent.TYPE,
+ "type": EventTypes.Redaction,
"sender": user.to_string(),
"state_key": user.to_string(),
"room_id": room.to_string(),
@@ -142,7 +139,7 @@ class RedactionTestCase(unittest.TestCase):
self.assertObjectHasAttributes(
{
- "type": MessageEvent.TYPE,
+ "type": EventTypes.Message,
"user_id": self.u_alice.to_string(),
"content": {"body": "t", "msgtype": "message"},
},
@@ -176,7 +173,7 @@ class RedactionTestCase(unittest.TestCase):
self.assertObjectHasAttributes(
{
- "type": MessageEvent.TYPE,
+ "type": EventTypes.Message,
"user_id": self.u_alice.to_string(),
"content": {},
},
@@ -185,7 +182,7 @@ class RedactionTestCase(unittest.TestCase):
self.assertObjectHasAttributes(
{
- "type": RoomRedactionEvent.TYPE,
+ "type": EventTypes.Redaction,
"user_id": self.u_alice.to_string(),
"content": {"reason": reason},
},
@@ -221,7 +218,7 @@ class RedactionTestCase(unittest.TestCase):
self.assertObjectHasAttributes(
{
- "type": RoomMemberEvent.TYPE,
+ "type": EventTypes.Member,
"user_id": self.u_bob.to_string(),
"content": {"membership": Membership.JOIN, "blue": "red"},
},
@@ -253,7 +250,7 @@ class RedactionTestCase(unittest.TestCase):
self.assertObjectHasAttributes(
{
- "type": RoomMemberEvent.TYPE,
+ "type": EventTypes.Member,
"user_id": self.u_bob.to_string(),
"content": {"membership": Membership.JOIN},
},
@@ -262,7 +259,7 @@ class RedactionTestCase(unittest.TestCase):
self.assertObjectHasAttributes(
{
- "type": RoomRedactionEvent.TYPE,
+ "type": EventTypes.Redaction,
"user_id": self.u_alice.to_string(),
"content": {"reason": reason},
},
diff --git a/tests/storage/test_room.py b/tests/storage/test_room.py
index 4ff02c306b..11761fe29a 100644
--- a/tests/storage/test_room.py
+++ b/tests/storage/test_room.py
@@ -18,9 +18,7 @@ from tests import unittest
from twisted.internet import defer
from synapse.server import HomeServer
-from synapse.api.events.room import (
- RoomNameEvent, RoomTopicEvent
-)
+from synapse.api.constants import EventTypes
from tests.utils import SQLiteMemoryDbPool
@@ -131,7 +129,7 @@ class RoomEventsStoreTestCase(unittest.TestCase):
name = u"A-Room-Name"
yield self.inject_room_event(
- etype=RoomNameEvent.TYPE,
+ etype=EventTypes.Name,
name=name,
content={"name": name},
depth=1,
@@ -154,7 +152,7 @@ class RoomEventsStoreTestCase(unittest.TestCase):
topic = u"A place for things"
yield self.inject_room_event(
- etype=RoomTopicEvent.TYPE,
+ etype=EventTypes.Topic,
topic=topic,
content={"topic": topic},
depth=1,
diff --git a/tests/storage/test_roommember.py b/tests/storage/test_roommember.py
index 6df09952d1..a23a8189df 100644
--- a/tests/storage/test_roommember.py
+++ b/tests/storage/test_roommember.py
@@ -18,8 +18,7 @@ from tests import unittest
from twisted.internet import defer
from synapse.server import HomeServer
-from synapse.api.constants import Membership
-from synapse.api.events.room import RoomMemberEvent
+from synapse.api.constants import EventTypes, Membership
from tests.utils import SQLiteMemoryDbPool, MockKey
@@ -61,7 +60,7 @@ class RoomMemberStoreTestCase(unittest.TestCase):
@defer.inlineCallbacks
def inject_room_member(self, room, user, membership, replaces_state=None):
builder = self.event_builder_factory.new({
- "type": RoomMemberEvent.TYPE,
+ "type": EventTypes.Member,
"sender": user.to_string(),
"state_key": user.to_string(),
"room_id": room.to_string(),
diff --git a/tests/storage/test_stream.py b/tests/storage/test_stream.py
index 4865a5c142..9247fc579e 100644
--- a/tests/storage/test_stream.py
+++ b/tests/storage/test_stream.py
@@ -18,8 +18,7 @@ from tests import unittest
from twisted.internet import defer
from synapse.server import HomeServer
-from synapse.api.constants import Membership
-from synapse.api.events.room import RoomMemberEvent, MessageEvent
+from synapse.api.constants import EventTypes, Membership
from tests.utils import SQLiteMemoryDbPool, MockKey
@@ -62,7 +61,7 @@ class StreamStoreTestCase(unittest.TestCase):
self.depth += 1
builder = self.event_builder_factory.new({
- "type": RoomMemberEvent.TYPE,
+ "type": EventTypes.Member,
"sender": user.to_string(),
"state_key": user.to_string(),
"room_id": room.to_string(),
@@ -82,7 +81,7 @@ class StreamStoreTestCase(unittest.TestCase):
self.depth += 1
builder = self.event_builder_factory.new({
- "type": MessageEvent.TYPE,
+ "type": EventTypes.Message,
"sender": user.to_string(),
"state_key": user.to_string(),
"room_id": room.to_string(),
@@ -125,7 +124,7 @@ class StreamStoreTestCase(unittest.TestCase):
self.assertObjectHasAttributes(
{
- "type": MessageEvent.TYPE,
+ "type": EventTypes.Message,
"user_id": self.u_alice.to_string(),
"content": {"body": "test", "msgtype": "message"},
},
@@ -162,7 +161,7 @@ class StreamStoreTestCase(unittest.TestCase):
self.assertObjectHasAttributes(
{
- "type": MessageEvent.TYPE,
+ "type": EventTypes.Message,
"user_id": self.u_alice.to_string(),
"content": {"body": "test", "msgtype": "message"},
},
diff --git a/tests/utils.py b/tests/utils.py
index 70a221550c..731e03f517 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -15,15 +15,11 @@
from synapse.http.server import HttpServer
from synapse.api.errors import cs_error, CodeMessageException, StoreError
-from synapse.api.constants import Membership
+from synapse.api.constants import EventTypes
from synapse.storage import prepare_database
from synapse.util.logcontext import LoggingContext
-from synapse.api.events.room import (
- RoomMemberEvent, MessageEvent
-)
-
from twisted.internet import defer, reactor
from twisted.enterprise.adbapi import ConnectionPool
@@ -276,7 +272,7 @@ class MemoryDataStore(object):
return defer.succeed([])
def persist_event(self, event):
- if event.type == RoomMemberEvent.TYPE:
+ if event.type == EventTypes.Member:
room_id = event.room_id
user = event.state_key
membership = event.membership
|