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 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])