From de1485323749b5aed0d0143c695180eb25ee8808 Mon Sep 17 00:00:00 2001 From: "Paul \"LeoNerd\" Evans" Date: Wed, 17 Sep 2014 15:33:10 +0100 Subject: [PATCH] More RoomStore tests --- tests/storage/test_room.py | 44 ++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/tests/storage/test_room.py b/tests/storage/test_room.py index 2477f965e6..8d85d56b9a 100644 --- a/tests/storage/test_room.py +++ b/tests/storage/test_room.py @@ -18,7 +18,6 @@ from tests import unittest from twisted.internet import defer from synapse.server import HomeServer -from synapse.storage.room import RoomStore from tests.utils import SQLiteMemoryDbPool @@ -34,20 +33,57 @@ class RoomStoreTestCase(unittest.TestCase): db_pool=db_pool, ) - self.store = RoomStore(hs) + # We can't test RoomStore on its own without the DirectoryStore, for + # management of the 'room_aliases' table + self.store = hs.get_datastore() self.room = hs.parse_roomid("!abcde:test") + self.alias = hs.parse_roomalias("#a-room-name:test") self.u_creator = hs.parse_userid("@creator:test") - @defer.inlineCallbacks - def test_store_room(self): yield self.store.store_room(self.room.to_string(), room_creator_user_id=self.u_creator.to_string(), is_public=True ) + @defer.inlineCallbacks + def test_get_room(self): room = yield self.store.get_room(self.room.to_string()) self.assertEquals(self.room.to_string(), room.room_id) self.assertEquals(self.u_creator.to_string(), room.creator) self.assertTrue(room.is_public) + + @defer.inlineCallbacks + def test_store_room_config(self): + yield self.store.store_room_config(self.room.to_string(), + visibility=False + ) + + room = yield self.store.get_room(self.room.to_string()) + + self.assertFalse(room.is_public) + + @defer.inlineCallbacks + def test_get_rooms(self): + # get_rooms does an INNER JOIN on the room_aliases table :( + + rooms = yield self.store.get_rooms(is_public=True) + # Should be empty before we add the alias + self.assertEquals([], rooms) + + yield self.store.create_room_alias_association( + room_alias=self.alias, + room_id=self.room.to_string(), + servers=["test"] + ) + + rooms = yield self.store.get_rooms(is_public=True) + + self.assertEquals(1, len(rooms)) + self.assertEquals({ + "name": None, + "room_id": self.room.to_string(), + "topic": None, + "aliases": [self.alias.to_string()], + }, rooms[0])