|
@@ -124,7 +124,7 @@ class AuthTestCase(unittest.TestCase):
|
|
|
)
|
|
|
|
|
|
@defer.inlineCallbacks
|
|
|
- def test_mau_limits_exceeded(self):
|
|
|
+ def test_mau_limits_exceeded_large(self):
|
|
|
self.hs.config.limit_usage_by_mau = True
|
|
|
self.hs.get_datastore().get_monthly_active_count = Mock(
|
|
|
return_value=defer.succeed(self.large_number_of_users)
|
|
@@ -141,6 +141,43 @@ class AuthTestCase(unittest.TestCase):
|
|
|
self._get_macaroon().serialize()
|
|
|
)
|
|
|
|
|
|
+ @defer.inlineCallbacks
|
|
|
+ def test_mau_limits_parity(self):
|
|
|
+ self.hs.config.limit_usage_by_mau = True
|
|
|
+
|
|
|
+ # If not in monthly active cohort
|
|
|
+ self.hs.get_datastore().get_monthly_active_count = Mock(
|
|
|
+ return_value=defer.succeed(self.hs.config.max_mau_value)
|
|
|
+ )
|
|
|
+ with self.assertRaises(AuthError):
|
|
|
+ yield self.auth_handler.get_access_token_for_user_id('user_a')
|
|
|
+
|
|
|
+ self.hs.get_datastore().get_monthly_active_count = Mock(
|
|
|
+ return_value=defer.succeed(self.hs.config.max_mau_value)
|
|
|
+ )
|
|
|
+ with self.assertRaises(AuthError):
|
|
|
+ yield self.auth_handler.validate_short_term_login_token_and_get_user_id(
|
|
|
+ self._get_macaroon().serialize()
|
|
|
+ )
|
|
|
+ # If in monthly active cohort
|
|
|
+ self.hs.get_datastore().user_last_seen_monthly_active = Mock(
|
|
|
+ return_value=defer.succeed(self.hs.get_clock().time_msec())
|
|
|
+ )
|
|
|
+ self.hs.get_datastore().get_monthly_active_count = Mock(
|
|
|
+ return_value=defer.succeed(self.hs.config.max_mau_value)
|
|
|
+ )
|
|
|
+ yield self.auth_handler.get_access_token_for_user_id('user_a')
|
|
|
+ self.hs.get_datastore().user_last_seen_monthly_active = Mock(
|
|
|
+ return_value=defer.succeed(self.hs.get_clock().time_msec())
|
|
|
+ )
|
|
|
+ self.hs.get_datastore().get_monthly_active_count = Mock(
|
|
|
+ return_value=defer.succeed(self.hs.config.max_mau_value)
|
|
|
+ )
|
|
|
+ yield self.auth_handler.validate_short_term_login_token_and_get_user_id(
|
|
|
+ self._get_macaroon().serialize()
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
@defer.inlineCallbacks
|
|
|
def test_mau_limits_not_exceeded(self):
|
|
|
self.hs.config.limit_usage_by_mau = True
|