forked from MirrorHub/synapse
More tests
This commit is contained in:
parent
53b27bbf06
commit
0a8b0eeca1
2 changed files with 60 additions and 4 deletions
|
@ -229,7 +229,7 @@ def format_event_for_client_v2_without_room_id(d):
|
||||||
|
|
||||||
def serialize_event(e, time_now_ms, as_client_event=True,
|
def serialize_event(e, time_now_ms, as_client_event=True,
|
||||||
event_format=format_event_for_client_v1,
|
event_format=format_event_for_client_v1,
|
||||||
token_id=None, event_fields=None):
|
token_id=None, only_event_fields=None):
|
||||||
# FIXME(erikj): To handle the case of presence events and the like
|
# FIXME(erikj): To handle the case of presence events and the like
|
||||||
if not isinstance(e, EventBase):
|
if not isinstance(e, EventBase):
|
||||||
return e
|
return e
|
||||||
|
@ -258,7 +258,8 @@ def serialize_event(e, time_now_ms, as_client_event=True,
|
||||||
if as_client_event:
|
if as_client_event:
|
||||||
d = event_format(d)
|
d = event_format(d)
|
||||||
|
|
||||||
if isinstance(event_fields, list):
|
if (isinstance(only_event_fields, list) and
|
||||||
d = only_fields(d, event_fields)
|
all(isinstance(f, basestring) for f in only_event_fields)):
|
||||||
|
d = only_fields(d, only_event_fields)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
|
@ -123,7 +123,7 @@ class PruneEventTestCase(unittest.TestCase):
|
||||||
class SerializeEventTestCase(unittest.TestCase):
|
class SerializeEventTestCase(unittest.TestCase):
|
||||||
|
|
||||||
def serialize(self, ev, fields):
|
def serialize(self, ev, fields):
|
||||||
return serialize_event(ev, 1924354, event_fields=fields)
|
return serialize_event(ev, 1479807801915, only_event_fields=fields)
|
||||||
|
|
||||||
def test_event_fields_works_with_keys(self):
|
def test_event_fields_works_with_keys(self):
|
||||||
self.assertEquals(
|
self.assertEquals(
|
||||||
|
@ -235,3 +235,58 @@ class SerializeEventTestCase(unittest.TestCase):
|
||||||
),
|
),
|
||||||
{}
|
{}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_event_fields_nops_with_array_keys(self):
|
||||||
|
self.assertEquals(
|
||||||
|
self.serialize(
|
||||||
|
MockEvent(
|
||||||
|
sender="@alice:localhost",
|
||||||
|
room_id="!foo:bar",
|
||||||
|
content={
|
||||||
|
"foo": ["I", "am", "an", "array"],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
["content.foo.1"]
|
||||||
|
),
|
||||||
|
{}
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_event_fields_all_fields_if_empty(self):
|
||||||
|
self.assertEquals(
|
||||||
|
self.serialize(
|
||||||
|
MockEvent(
|
||||||
|
room_id="!foo:bar",
|
||||||
|
content={
|
||||||
|
"foo": "bar",
|
||||||
|
},
|
||||||
|
),
|
||||||
|
[]
|
||||||
|
),
|
||||||
|
{
|
||||||
|
"room_id": "!foo:bar",
|
||||||
|
"content": {
|
||||||
|
"foo": "bar",
|
||||||
|
},
|
||||||
|
"unsigned": {}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_event_fields_fail_if_fields_not_str(self):
|
||||||
|
self.assertEquals(
|
||||||
|
self.serialize(
|
||||||
|
MockEvent(
|
||||||
|
room_id="!foo:bar",
|
||||||
|
content={
|
||||||
|
"foo": "bar",
|
||||||
|
},
|
||||||
|
),
|
||||||
|
["room_id", 4]
|
||||||
|
),
|
||||||
|
{
|
||||||
|
"room_id": "!foo:bar",
|
||||||
|
"content": {
|
||||||
|
"foo": "bar",
|
||||||
|
},
|
||||||
|
"unsigned": {}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
Loading…
Reference in a new issue