|
@@ -50,6 +50,10 @@ class RegistrationTestCase(unittest.TestCase):
|
|
|
self.hs.get_macaroon_generator = Mock(return_value=self.macaroon_generator)
|
|
|
self.hs.handlers = RegistrationHandlers(self.hs)
|
|
|
self.handler = self.hs.get_handlers().registration_handler
|
|
|
+ self.store = self.hs.get_datastore()
|
|
|
+ self.hs.config.max_mau_value = 50
|
|
|
+ self.lots_of_users = 100
|
|
|
+ self.small_number_of_users = 1
|
|
|
|
|
|
@defer.inlineCallbacks
|
|
|
def test_user_is_created_and_logged_in_if_doesnt_exist(self):
|
|
@@ -80,51 +84,44 @@ class RegistrationTestCase(unittest.TestCase):
|
|
|
self.assertEquals(result_token, 'secret')
|
|
|
|
|
|
@defer.inlineCallbacks
|
|
|
- def test_cannot_register_when_mau_limits_exceeded(self):
|
|
|
- local_part = "someone"
|
|
|
- display_name = "someone"
|
|
|
- requester = create_requester("@as:test")
|
|
|
- store = self.hs.get_datastore()
|
|
|
+ def test_mau_limits_when_disabled(self):
|
|
|
self.hs.config.limit_usage_by_mau = False
|
|
|
- self.hs.config.max_mau_value = 50
|
|
|
- lots_of_users = 100
|
|
|
- small_number_users = 1
|
|
|
-
|
|
|
- store.count_monthly_users = Mock(return_value=defer.succeed(lots_of_users))
|
|
|
-
|
|
|
# Ensure does not throw exception
|
|
|
- yield self.handler.get_or_create_user(requester, 'a', display_name)
|
|
|
+ yield self.handler.get_or_create_user("requester", 'a', "display_name")
|
|
|
|
|
|
+ @defer.inlineCallbacks
|
|
|
+ def test_get_or_create_user_mau_not_blocked(self):
|
|
|
self.hs.config.limit_usage_by_mau = True
|
|
|
-
|
|
|
- with self.assertRaises(RegistrationError):
|
|
|
- yield self.handler.get_or_create_user(requester, 'b', display_name)
|
|
|
-
|
|
|
- store.count_monthly_users = Mock(return_value=defer.succeed(small_number_users))
|
|
|
-
|
|
|
- self._macaroon_mock_generator("another_secret")
|
|
|
-
|
|
|
+ self.store.count_monthly_users = Mock(
|
|
|
+ return_value=defer.succeed(self.small_number_of_users)
|
|
|
+ )
|
|
|
# Ensure does not throw exception
|
|
|
- yield self.handler.get_or_create_user("@neil:matrix.org", 'c', "Neil")
|
|
|
+ yield self.handler.get_or_create_user("@user:server", 'c', "User")
|
|
|
|
|
|
- self._macaroon_mock_generator("another another secret")
|
|
|
- store.count_monthly_users = Mock(return_value=defer.succeed(lots_of_users))
|
|
|
+ @defer.inlineCallbacks
|
|
|
+ def test_get_or_create_user_mau_blocked(self):
|
|
|
+ self.hs.config.limit_usage_by_mau = True
|
|
|
+ self.store.get_monthly_active_count = Mock(
|
|
|
+ return_value=defer.succeed(self.lots_of_users)
|
|
|
+ )
|
|
|
|
|
|
with self.assertRaises(RegistrationError):
|
|
|
- yield self.handler.register(localpart=local_part)
|
|
|
+ yield self.handler.get_or_create_user("requester", 'b', "display_name")
|
|
|
|
|
|
- self._macaroon_mock_generator("another another secret")
|
|
|
- store.count_monthly_users = Mock(return_value=defer.succeed(lots_of_users))
|
|
|
+ @defer.inlineCallbacks
|
|
|
+ def test_register_mau_blocked(self):
|
|
|
+ self.hs.config.limit_usage_by_mau = True
|
|
|
+ self.store.get_monthly_active_count = Mock(
|
|
|
+ return_value=defer.succeed(self.lots_of_users)
|
|
|
+ )
|
|
|
+ with self.assertRaises(RegistrationError):
|
|
|
+ yield self.handler.register(localpart="local_part")
|
|
|
|
|
|
+ @defer.inlineCallbacks
|
|
|
+ def test_register_saml2_mau_blocked(self):
|
|
|
+ self.hs.config.limit_usage_by_mau = True
|
|
|
+ self.store.get_monthly_active_count = Mock(
|
|
|
+ return_value=defer.succeed(self.lots_of_users)
|
|
|
+ )
|
|
|
with self.assertRaises(RegistrationError):
|
|
|
- yield self.handler.register_saml2(local_part)
|
|
|
-
|
|
|
- def _macaroon_mock_generator(self, secret):
|
|
|
- """
|
|
|
- Reset macaroon generator in the case where the test creates multiple users
|
|
|
- """
|
|
|
- macaroon_generator = Mock(
|
|
|
- generate_access_token=Mock(return_value=secret))
|
|
|
- self.hs.get_macaroon_generator = Mock(return_value=macaroon_generator)
|
|
|
- self.hs.handlers = RegistrationHandlers(self.hs)
|
|
|
- self.handler = self.hs.get_handlers().registration_handler
|
|
|
+ yield self.handler.register_saml2(localpart="local_part")
|