summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/push/test_email.py15
-rw-r--r--tests/rest/client/test_room_access_rules.py54
-rw-r--r--tests/rest/client/v2_alpha/test_account.py1
-rw-r--r--tests/rest/client/v2_alpha/test_auth.py1
-rw-r--r--tests/util/caches/test_deferred_cache.py27
-rw-r--r--tests/util/test_lrucache.py8
6 files changed, 57 insertions, 49 deletions
diff --git a/tests/push/test_email.py b/tests/push/test_email.py

index 3224568640..55545d9341 100644 --- a/tests/push/test_email.py +++ b/tests/push/test_email.py
@@ -158,8 +158,21 @@ class EmailPusherTests(HomeserverTestCase): # We should get emailed about those messages self._check_for_mail() + def test_encrypted_message(self): + room = self.helper.create_room_as(self.user_id, tok=self.access_token) + self.helper.invite( + room=room, src=self.user_id, tok=self.access_token, targ=self.others[0].id + ) + self.helper.join(room=room, user=self.others[0].id, tok=self.others[0].token) + + # The other user sends some messages + self.helper.send_event(room, "m.room.encrypted", {}, tok=self.others[0].token) + + # We should get emailed about that message + self._check_for_mail() + def _check_for_mail(self): - "Check that the user receives an email notification" + """Check that the user receives an email notification""" # Get the stream ordering before it gets sent pushers = self.get_success( diff --git a/tests/rest/client/test_room_access_rules.py b/tests/rest/client/test_room_access_rules.py
index 82c363a682..1a4ea34292 100644 --- a/tests/rest/client/test_room_access_rules.py +++ b/tests/rest/client/test_room_access_rules.py
@@ -22,6 +22,7 @@ from mock import Mock from twisted.internet import defer from synapse.api.constants import EventTypes, JoinRules, Membership, RoomCreationPreset +from synapse.api.errors import SynapseError from synapse.rest import admin from synapse.rest.client.v1 import directory, login, room from synapse.third_party_rules.access_rules import ( @@ -783,8 +784,8 @@ class RoomAccessTestCase(unittest.HomeserverTestCase): allowed_requester = create_requester("@user:allowed_domain") forbidden_requester = create_requester("@user:forbidden_domain") - # Create a join event for a forbidden user - forbidden_join_event, forbidden_join_event_context = self.get_success( + # Assert a join event from a forbidden user to a restricted room is rejected + self.get_failure( event_creator.create_event( forbidden_requester, { @@ -794,11 +795,12 @@ class RoomAccessTestCase(unittest.HomeserverTestCase): "content": {"membership": Membership.JOIN}, "state_key": forbidden_requester.user.to_string(), }, - ) + ), + SynapseError, ) - # Create a join event for an allowed user - allowed_join_event, allowed_join_event_context = self.get_success( + # A join event from an non-forbidden user to a restricted room is allowed + self.get_success( event_creator.create_event( allowed_requester, { @@ -811,26 +813,10 @@ class RoomAccessTestCase(unittest.HomeserverTestCase): ) ) - # Assert a join event from a forbidden user to a restricted room is rejected - can_join = self.get_success( - self.third_party_event_rules.check_event_allowed( - forbidden_join_event, forbidden_join_event_context - ) - ) - self.assertFalse(can_join) - - # But a join event from an non-forbidden user to a restricted room is allowed - can_join = self.get_success( - self.third_party_event_rules.check_event_allowed( - allowed_join_event, allowed_join_event_context - ) - ) - self.assertTrue(can_join) - # Test that forbidden users can only join unrestricted rooms if they have an invite - # Recreate the forbidden join event for the unrestricted room instead - forbidden_join_event, forbidden_join_event_context = self.get_success( + # A forbidden user without an invite should not be able to join an unrestricted room + self.get_failure( event_creator.create_event( forbidden_requester, { @@ -840,16 +826,9 @@ class RoomAccessTestCase(unittest.HomeserverTestCase): "content": {"membership": Membership.JOIN}, "state_key": forbidden_requester.user.to_string(), }, - ) - ) - - # A forbidden user without an invite should not be able to join an unrestricted room - can_join = self.get_success( - self.third_party_event_rules.check_event_allowed( - forbidden_join_event, forbidden_join_event_context - ) + ), + SynapseError, ) - self.assertFalse(can_join) # However, if we then invite this user... self.helper.invite( @@ -861,7 +840,8 @@ class RoomAccessTestCase(unittest.HomeserverTestCase): # And create another join event, making sure that its context states it's coming # in after the above invite was made... - forbidden_join_event, forbidden_join_event_context = self.get_success( + # Then the forbidden user should be able to join! + self.get_success( event_creator.create_event( forbidden_requester, { @@ -874,14 +854,6 @@ class RoomAccessTestCase(unittest.HomeserverTestCase): ) ) - # Then the forbidden user should be able to join! - can_join = self.get_success( - self.third_party_event_rules.check_event_allowed( - forbidden_join_event, forbidden_join_event_context - ) - ) - self.assertTrue(can_join) - def test_freezing_a_room(self): """Tests that the power levels in a room change to prevent new events from non-admin users when the last admin of a room leaves. diff --git a/tests/rest/client/v2_alpha/test_account.py b/tests/rest/client/v2_alpha/test_account.py
index ae2cd67f35..66ac4dbe85 100644 --- a/tests/rest/client/v2_alpha/test_account.py +++ b/tests/rest/client/v2_alpha/test_account.py
@@ -352,7 +352,6 @@ class DeactivateTestCase(unittest.HomeserverTestCase): self.render(request) self.assertEqual(request.code, 401) - @unittest.INFO def test_pending_invites(self): """Tests that deactivating a user rejects every pending invite for them.""" store = self.hs.get_datastore() diff --git a/tests/rest/client/v2_alpha/test_auth.py b/tests/rest/client/v2_alpha/test_auth.py
index 293ccfba2b..86184f0d2e 100644 --- a/tests/rest/client/v2_alpha/test_auth.py +++ b/tests/rest/client/v2_alpha/test_auth.py
@@ -104,7 +104,6 @@ class FallbackAuthTests(unittest.HomeserverTestCase): self.assertEqual(len(attempts), 1) self.assertEqual(attempts[0][0]["response"], "a") - @unittest.INFO def test_fallback_captcha(self): """Ensure that fallback auth via a captcha works.""" # Returns a 401 as per the spec diff --git a/tests/util/caches/test_deferred_cache.py b/tests/util/caches/test_deferred_cache.py
index 9717be56b6..8a08ab6661 100644 --- a/tests/util/caches/test_deferred_cache.py +++ b/tests/util/caches/test_deferred_cache.py
@@ -38,6 +38,22 @@ class DeferredCacheTestCase(unittest.TestCase): self.assertEquals(cache.get("foo"), 123) + def test_get_immediate(self): + cache = DeferredCache("test") + d1 = defer.Deferred() + cache.set("key1", d1) + + # get_immediate should return default + v = cache.get_immediate("key1", 1) + self.assertEqual(v, 1) + + # now complete the set + d1.callback(2) + + # get_immediate should return result + v = cache.get_immediate("key1", 1) + self.assertEqual(v, 2) + def test_invalidate(self): cache = DeferredCache("test") cache.prefill(("foo",), 123) @@ -80,9 +96,11 @@ class DeferredCacheTestCase(unittest.TestCase): # now do the invalidation cache.invalidate_all() - # lookup should return none - self.assertIsNone(cache.get("key1", None)) - self.assertIsNone(cache.get("key2", None)) + # lookup should fail + with self.assertRaises(KeyError): + cache.get("key1") + with self.assertRaises(KeyError): + cache.get("key2") # both callbacks should have been callbacked self.assertTrue(callback_record[0], "Invalidation callback for key1 not called") @@ -90,7 +108,8 @@ class DeferredCacheTestCase(unittest.TestCase): # letting the other lookup complete should do nothing d1.callback("result1") - self.assertIsNone(cache.get("key1", None)) + with self.assertRaises(KeyError): + cache.get("key1", None) def test_eviction(self): cache = DeferredCache( diff --git a/tests/util/test_lrucache.py b/tests/util/test_lrucache.py
index f12834edab..a739a6aaaf 100644 --- a/tests/util/test_lrucache.py +++ b/tests/util/test_lrucache.py
@@ -19,7 +19,8 @@ from mock import Mock from synapse.util.caches.lrucache import LruCache from synapse.util.caches.treecache import TreeCache -from .. import unittest +from tests import unittest +from tests.unittest import override_config class LruCacheTestCase(unittest.HomeserverTestCase): @@ -83,6 +84,11 @@ class LruCacheTestCase(unittest.HomeserverTestCase): cache.clear() self.assertEquals(len(cache), 0) + @override_config({"caches": {"per_cache_factors": {"mycache": 10}}}) + def test_special_size(self): + cache = LruCache(10, "mycache") + self.assertEqual(cache.max_size, 100) + class LruCacheCallbacksTestCase(unittest.HomeserverTestCase): def test_get(self):