Start adding some tests

pull/1638/head
Kegan Dougal 2016-11-21 17:52:45 +00:00
parent f97511a1f3
commit 70a2157b64
2 changed files with 40 additions and 4 deletions

View File

@ -16,6 +16,8 @@
from synapse.api.constants import EventTypes from synapse.api.constants import EventTypes
from . import EventBase from . import EventBase
from frozendict import frozendict
import re import re
# Split strings on "." but not "\." This uses a negative lookbehind assertion for '\' # Split strings on "." but not "\." This uses a negative lookbehind assertion for '\'
@ -130,7 +132,7 @@ def _copy_field(src, dst, field):
key_to_move = field.pop(-1) key_to_move = field.pop(-1)
sub_dict = src sub_dict = src
for sub_field in field: # e.g. sub_field => "content" for sub_field in field: # e.g. sub_field => "content"
if sub_field in sub_dict and type(sub_dict[sub_field]) == dict: if sub_field in sub_dict and type(sub_dict[sub_field]) == frozendict:
sub_dict = sub_dict[sub_field] sub_dict = sub_dict[sub_field]
else: else:
return return

View File

@ -17,7 +17,11 @@
from .. import unittest from .. import unittest
from synapse.events import FrozenEvent from synapse.events import FrozenEvent
from synapse.events.utils import prune_event from synapse.events.utils import prune_event, serialize_event
def MockEvent(**kwargs):
return FrozenEvent(kwargs)
class PruneEventTestCase(unittest.TestCase): class PruneEventTestCase(unittest.TestCase):
@ -118,11 +122,41 @@ class PruneEventTestCase(unittest.TestCase):
class SerializeEventTestCase(unittest.TestCase): class SerializeEventTestCase(unittest.TestCase):
def serialize(self, ev, fields):
return serialize_event(ev, 1924354, event_fields=fields)
def test_event_fields_works_with_keys(self): def test_event_fields_works_with_keys(self):
pass self.assertEquals(
self.serialize(
MockEvent(
sender="@alice:localhost",
room_id="!foo:bar"
),
["room_id"]
),
{
"room_id": "!foo:bar",
}
)
def test_event_fields_works_with_nested_keys(self): def test_event_fields_works_with_nested_keys(self):
pass self.assertEquals(
self.serialize(
MockEvent(
sender="@alice:localhost",
room_id="!foo:bar",
content={
"body": "A message",
},
),
["content.body"]
),
{
"content": {
"body": "A message",
}
}
)
def test_event_fields_works_with_dot_keys(self): def test_event_fields_works_with_dot_keys(self):
pass pass