From 8bd55cfdcb206afce1a92eb198d25cf40f439b38 Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Tue, 26 Aug 2014 15:54:25 +0100 Subject: [PATCH] Fix ALL THE UNIT TESTS --- tests/handlers/test_federation.py | 1 - tests/handlers/test_room.py | 6 +++--- tests/rest/test_rooms.py | 32 +++++++++++++++---------------- tests/rest/utils.py | 22 ++++++++++----------- tests/utils.py | 8 +++++--- 5 files changed, 35 insertions(+), 34 deletions(-) diff --git a/tests/handlers/test_federation.py b/tests/handlers/test_federation.py index f4cf54b7e..a92d825f4 100644 --- a/tests/handlers/test_federation.py +++ b/tests/handlers/test_federation.py @@ -99,7 +99,6 @@ class FederationTestCase(unittest.TestCase): new_event = mem_handler.change_membership.call_args[0][0] self.assertEquals(RoomMemberEvent.TYPE, new_event.type) self.assertEquals(room_id, new_event.room_id) - self.assertEquals(user_id, new_event.target_user_id) self.assertEquals(user_id, new_event.state_key) self.assertEquals(Membership.JOIN, new_event.membership) diff --git a/tests/handlers/test_room.py b/tests/handlers/test_room.py index bf71d3be3..fddab8f74 100644 --- a/tests/handlers/test_room.py +++ b/tests/handlers/test_room.py @@ -85,7 +85,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase): event = self.hs.get_event_factory().create_event( etype=RoomMemberEvent.TYPE, user_id=user_id, - target_user_id=target_user_id, + state_key=target_user_id, room_id=room_id, membership=Membership.INVITE, content=content, @@ -133,7 +133,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase): event = self.hs.get_event_factory().create_event( etype=RoomMemberEvent.TYPE, user_id=user_id, - target_user_id=target_user_id, + state_key=target_user_id, room_id=room_id, membership=Membership.JOIN, content=content, @@ -359,7 +359,7 @@ class RoomCreationTest(unittest.TestCase): self.assertEquals(RoomMemberEvent.TYPE, join_event.type) self.assertEquals(room_id, join_event.room_id) self.assertEquals(user_id, join_event.user_id) - self.assertEquals(user_id, join_event.target_user_id) + self.assertEquals(user_id, join_event.state_key) self.assertTrue(self.state_handler.handle_new_event.called) diff --git a/tests/rest/test_rooms.py b/tests/rest/test_rooms.py index a9b66df91..b932ca02e 100644 --- a/tests/rest/test_rooms.py +++ b/tests/rest/test_rooms.py @@ -94,7 +94,7 @@ class RoomPermissionsTestCase(RestTestCase): # set topic for public room (code, response) = yield self.mock_resource.trigger( "PUT", - "/rooms/%s/topic" % self.created_public_rmid, + "/rooms/%s/state/m.room.topic" % self.created_public_rmid, '{"topic":"Public Room Topic"}') self.assertEquals(200, code, msg=str(response)) @@ -175,15 +175,15 @@ class RoomPermissionsTestCase(RestTestCase): @defer.inlineCallbacks def test_topic_perms(self): topic_content = '{"topic":"My Topic Name"}' - topic_path = "/rooms/%s/topic" % self.created_rmid + topic_path = "/rooms/%s/state/m.room.topic" % self.created_rmid # set/get topic in uncreated room, expect 403 (code, response) = yield self.mock_resource.trigger( - "PUT", "/rooms/%s/topic" % self.uncreated_rmid, + "PUT", "/rooms/%s/state/m.room.topic" % self.uncreated_rmid, topic_content) self.assertEquals(403, code, msg=str(response)) (code, response) = yield self.mock_resource.trigger_get( - "/rooms/%s/topic" % self.uncreated_rmid) + "/rooms/%s/state/m.room.topic" % self.uncreated_rmid) self.assertEquals(403, code, msg=str(response)) # set/get topic in created PRIVATE room not joined, expect 403 @@ -223,19 +223,19 @@ class RoomPermissionsTestCase(RestTestCase): # get topic in PUBLIC room, not joined, expect 200 (or 404) (code, response) = yield self.mock_resource.trigger_get( - "/rooms/%s/topic" % self.created_public_rmid) + "/rooms/%s/state/m.room.topic" % self.created_public_rmid) self.assertEquals(200, code, msg=str(response)) # set topic in PUBLIC room, not joined, expect 403 (code, response) = yield self.mock_resource.trigger( "PUT", - "/rooms/%s/topic" % self.created_public_rmid, + "/rooms/%s/state/m.room.topic" % self.created_public_rmid, topic_content) self.assertEquals(403, code, msg=str(response)) @defer.inlineCallbacks def _test_get_membership(self, room=None, members=[], expect_code=None): - path = "/rooms/%s/members/%s/state" + path = "/rooms/%s/state/m.room.member/%s" for member in members: (code, response) = yield self.mock_resource.trigger_get( path % @@ -291,12 +291,12 @@ class RoomPermissionsTestCase(RestTestCase): def test_membership_public_room_perms(self): room = self.created_public_rmid # get membership of self, get membership of other, public room + invite - # expect all 403s + # expect all 200s - public rooms, you can see who is in them. yield self.invite(room=room, src=self.rmcreator_id, targ=self.user_id) yield self._test_get_membership( members=[self.user_id, self.rmcreator_id], - room=room, expect_code=403) + room=room, expect_code=200) # get membership of self, get membership of other, public room + joined # expect all 200s @@ -306,11 +306,11 @@ class RoomPermissionsTestCase(RestTestCase): room=room, expect_code=200) # get membership of self, get membership of other, public room + left - # expect all 403s + # expect all 200s - public rooms, you can always see who is in them. yield self.leave(room=room, user=self.user_id) yield self._test_get_membership( members=[self.user_id, self.rmcreator_id], - room=room, expect_code=403) + room=room, expect_code=200) @defer.inlineCallbacks def test_invited_permissions(self): @@ -614,7 +614,7 @@ class RoomTopicTestCase(RestTestCase): self.mock_resource = MockHttpResource(prefix=PATH_PREFIX) self.auth_user_id = self.user_id self.room_id = "!rid1:test" - self.path = "/rooms/%s/topic" % self.room_id + self.path = "/rooms/%s/state/m.room.topic" % self.room_id state_handler = Mock(spec=["handle_new_event"]) state_handler.handle_new_event.return_value = True @@ -749,7 +749,7 @@ class RoomMemberStateTestCase(RestTestCase): @defer.inlineCallbacks def test_invalid_puts(self): - path = "/rooms/%s/members/%s/state" % (self.room_id, self.user_id) + path = "/rooms/%s/state/m.room.member/%s" % (self.room_id, self.user_id) # missing keys or invalid json (code, response) = yield self.mock_resource.trigger("PUT", path, '{}') @@ -783,7 +783,7 @@ class RoomMemberStateTestCase(RestTestCase): @defer.inlineCallbacks def test_rooms_members_self(self): - path = "/rooms/%s/members/%s/state" % ( + path = "/rooms/%s/state/m.room.member/%s" % ( urllib.quote(self.room_id), self.user_id ) @@ -804,7 +804,7 @@ class RoomMemberStateTestCase(RestTestCase): @defer.inlineCallbacks def test_rooms_members_other(self): self.other_id = "@zzsid1:red" - path = "/rooms/%s/members/%s/state" % ( + path = "/rooms/%s/state/m.room.member/%s" % ( urllib.quote(self.room_id), self.other_id ) @@ -820,7 +820,7 @@ class RoomMemberStateTestCase(RestTestCase): @defer.inlineCallbacks def test_rooms_members_other_custom_keys(self): self.other_id = "@zzsid1:red" - path = "/rooms/%s/members/%s/state" % ( + path = "/rooms/%s/state/m.room.member/%s" % ( urllib.quote(self.room_id), self.other_id ) diff --git a/tests/rest/utils.py b/tests/rest/utils.py index 8ed228b21..bc8bff0f1 100644 --- a/tests/rest/utils.py +++ b/tests/rest/utils.py @@ -21,6 +21,7 @@ from twisted.trial import unittest from synapse.api.constants import Membership +import json import time class RestTestCase(unittest.TestCase): @@ -71,23 +72,22 @@ class RestTestCase(unittest.TestCase): expect_code=expect_code) @defer.inlineCallbacks - def change_membership(self, room=None, src=None, targ=None, - membership=None, expect_code=200, tok=None): + def change_membership(self, room, src, targ, membership, tok=None, + expect_code=200): temp_id = self.auth_user_id self.auth_user_id = src - path = "/rooms/%s/members/%s/state" % (room, targ) + path = "/rooms/%s/state/m.room.member/%s" % (room, targ) if tok: path = path + "?access_token=%s" % tok - if membership == Membership.LEAVE: - (code, response) = yield self.mock_resource.trigger("DELETE", path, - None) - self.assertEquals(expect_code, code, msg=str(response)) - else: - (code, response) = yield self.mock_resource.trigger("PUT", path, - '{"membership":"%s"}' % membership) - self.assertEquals(expect_code, code, msg=str(response)) + data = { + "membership": membership + } + + (code, response) = yield self.mock_resource.trigger("PUT", path, + json.dumps(data)) + self.assertEquals(expect_code, code, msg=str(response)) self.auth_user_id = temp_id diff --git a/tests/utils.py b/tests/utils.py index c68b17f7b..f40cbce51 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -183,7 +183,7 @@ class MemoryDataStore(object): def persist_event(self, event): if event.type == RoomMemberEvent.TYPE: room_id = event.room_id - user = event.target_user_id + user = event.state_key membership = event.membership self.members.setdefault(room_id, {})[user] = event @@ -196,7 +196,9 @@ class MemoryDataStore(object): def get_current_state(self, room_id, event_type=None, state_key=""): if event_type: key = (room_id, event_type, state_key) - return self.current_state.get(key) + if self.current_state.get(key): + return [self.current_state.get(key)] + return None else: return [ e for e in self.current_state @@ -214,7 +216,7 @@ class MemoryDataStore(object): def _format_call(args, kwargs): return ", ".join( - ["%r" % (a) for a in args] + + ["%r" % (a) for a in args] + ["%s=%r" % (k, v) for k, v in kwargs.items()] )