summary refs log tree commit diff
path: root/tests/handlers
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <paul@matrix.org>2014-09-10 18:11:32 +0100
committerPaul "LeoNerd" Evans <paul@matrix.org>2014-09-10 18:11:32 +0100
commit79fe6083ebaf734fbba82cdace54c1cb3e3603fe (patch)
treebf68804af83bfc028109946cb0ae47cc6471eff7 /tests/handlers
parentAdded unit tests for PresenceDataStore too (diff)
downloadsynapse-79fe6083ebaf734fbba82cdace54c1cb3e3603fe.tar.xz
Test ProfileHandler against the real datastore layer using SQLite :memory:
Diffstat (limited to 'tests/handlers')
-rw-r--r--tests/handlers/test_profile.py50
1 files changed, 25 insertions, 25 deletions
diff --git a/tests/handlers/test_profile.py b/tests/handlers/test_profile.py
index 8e7a89b479..8b9685a527 100644
--- a/tests/handlers/test_profile.py
+++ b/tests/handlers/test_profile.py
@@ -24,6 +24,8 @@ from synapse.api.errors import AuthError
 from synapse.server import HomeServer
 from synapse.handlers.profile import ProfileHandler
 
+from tests.utils import SQLiteMemoryDbPool
+
 
 logging.getLogger().addHandler(logging.NullHandler())
 
@@ -36,6 +38,7 @@ class ProfileHandlers(object):
 class ProfileTestCase(unittest.TestCase):
     """ Tests profile management. """
 
+    @defer.inlineCallbacks
     def setUp(self):
         self.mock_federation = Mock(spec=[
             "make_query",
@@ -47,26 +50,24 @@ class ProfileTestCase(unittest.TestCase):
         self.mock_federation.register_query_handler = register_query_handler
 
         hs = HomeServer("test",
-                db_pool=None,
+                db_pool=SQLiteMemoryDbPool(),
                 http_client=None,
-                datastore=Mock(spec=[
-                    "get_profile_displayname",
-                    "set_profile_displayname",
-                    "get_profile_avatar_url",
-                    "set_profile_avatar_url",
-                ]),
                 handlers=None,
                 resource_for_federation=Mock(),
                 replication_layer=self.mock_federation,
             )
         hs.handlers = ProfileHandlers(hs)
 
-        self.datastore = hs.get_datastore()
+        yield hs.get_db_pool().prepare()
+
+        self.store = hs.get_datastore()
 
         self.frank = hs.parse_userid("@1234ABCD:test")
         self.bob   = hs.parse_userid("@4567:test")
         self.alice = hs.parse_userid("@alice:remote")
 
+        yield self.store.create_profile(self.frank.localpart)
+
         self.handler = hs.get_handlers().profile_handler
 
         # TODO(paul): Icky signal declarings.. booo
@@ -74,22 +75,22 @@ class ProfileTestCase(unittest.TestCase):
 
     @defer.inlineCallbacks
     def test_get_my_name(self):
-        mocked_get = self.datastore.get_profile_displayname
-        mocked_get.return_value = defer.succeed("Frank")
+        yield self.store.set_profile_displayname(
+            self.frank.localpart, "Frank"
+        )
 
         displayname = yield self.handler.get_displayname(self.frank)
 
         self.assertEquals("Frank", displayname)
-        mocked_get.assert_called_with("1234ABCD")
 
     @defer.inlineCallbacks
     def test_set_my_name(self):
-        mocked_set = self.datastore.set_profile_displayname
-        mocked_set.return_value = defer.succeed(())
-
         yield self.handler.set_displayname(self.frank, self.frank, "Frank Jr.")
 
-        mocked_set.assert_called_with("1234ABCD", "Frank Jr.")
+        self.assertEquals(
+            (yield self.store.get_profile_displayname(self.frank.localpart)),
+            "Frank Jr."
+        )
 
     @defer.inlineCallbacks
     def test_set_my_name_noauth(self):
@@ -114,32 +115,31 @@ class ProfileTestCase(unittest.TestCase):
 
     @defer.inlineCallbacks
     def test_incoming_fed_query(self):
-        mocked_get = self.datastore.get_profile_displayname
-        mocked_get.return_value = defer.succeed("Caroline")
+        yield self.store.create_profile("caroline")
+        yield self.store.set_profile_displayname("caroline", "Caroline")
 
         response = yield self.query_handlers["profile"](
             {"user_id": "@caroline:test", "field": "displayname"}
         )
 
         self.assertEquals({"displayname": "Caroline"}, response)
-        mocked_get.assert_called_with("caroline")
 
     @defer.inlineCallbacks
     def test_get_my_avatar(self):
-        mocked_get = self.datastore.get_profile_avatar_url
-        mocked_get.return_value = defer.succeed("http://my.server/me.png")
+        yield self.store.set_profile_avatar_url(
+            self.frank.localpart, "http://my.server/me.png"
+        )
 
         avatar_url = yield self.handler.get_avatar_url(self.frank)
 
         self.assertEquals("http://my.server/me.png", avatar_url)
-        mocked_get.assert_called_with("1234ABCD")
 
     @defer.inlineCallbacks
     def test_set_my_avatar(self):
-        mocked_set = self.datastore.set_profile_avatar_url
-        mocked_set.return_value = defer.succeed(())
-
         yield self.handler.set_avatar_url(self.frank, self.frank,
                 "http://my.server/pic.gif")
 
-        mocked_set.assert_called_with("1234ABCD", "http://my.server/pic.gif")
+        self.assertEquals(
+            (yield self.store.get_profile_avatar_url(self.frank.localpart)),
+            "http://my.server/pic.gif"
+        )