More RoomStore tests

This commit is contained in:
Paul "LeoNerd" Evans 2014-09-17 15:33:10 +01:00
parent 9973298e2a
commit de14853237

View file

@ -18,7 +18,6 @@ from tests import unittest
from twisted.internet import defer from twisted.internet import defer
from synapse.server import HomeServer from synapse.server import HomeServer
from synapse.storage.room import RoomStore
from tests.utils import SQLiteMemoryDbPool from tests.utils import SQLiteMemoryDbPool
@ -34,20 +33,57 @@ class RoomStoreTestCase(unittest.TestCase):
db_pool=db_pool, 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.room = hs.parse_roomid("!abcde:test")
self.alias = hs.parse_roomalias("#a-room-name:test")
self.u_creator = hs.parse_userid("@creator: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(), yield self.store.store_room(self.room.to_string(),
room_creator_user_id=self.u_creator.to_string(), room_creator_user_id=self.u_creator.to_string(),
is_public=True is_public=True
) )
@defer.inlineCallbacks
def test_get_room(self):
room = yield self.store.get_room(self.room.to_string()) room = yield self.store.get_room(self.room.to_string())
self.assertEquals(self.room.to_string(), room.room_id) self.assertEquals(self.room.to_string(), room.room_id)
self.assertEquals(self.u_creator.to_string(), room.creator) self.assertEquals(self.u_creator.to_string(), room.creator)
self.assertTrue(room.is_public) 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])