mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 21:44:52 -04:00
Add option to track MAU stats (but not limit people) (#3830)
This commit is contained in:
parent
df758e155d
commit
835779f7fb
7 changed files with 91 additions and 34 deletions
|
@ -220,3 +220,28 @@ class MonthlyActiveUsersTestCase(HomeserverTestCase):
|
|||
self.store.user_add_threepid(user2, "email", user2_email, now, now)
|
||||
count = self.store.get_registered_reserved_users_count()
|
||||
self.assertEquals(self.get_success(count), len(threepids))
|
||||
|
||||
def test_track_monthly_users_without_cap(self):
|
||||
self.hs.config.limit_usage_by_mau = False
|
||||
self.hs.config.mau_stats_only = True
|
||||
self.hs.config.max_mau_value = 1 # should not matter
|
||||
|
||||
count = self.store.get_monthly_active_count()
|
||||
self.assertEqual(0, self.get_success(count))
|
||||
|
||||
self.store.upsert_monthly_active_user("@user1:server")
|
||||
self.store.upsert_monthly_active_user("@user2:server")
|
||||
self.pump()
|
||||
|
||||
count = self.store.get_monthly_active_count()
|
||||
self.assertEqual(2, self.get_success(count))
|
||||
|
||||
def test_no_users_when_not_tracking(self):
|
||||
self.hs.config.limit_usage_by_mau = False
|
||||
self.hs.config.mau_stats_only = False
|
||||
self.store.upsert_monthly_active_user = Mock()
|
||||
|
||||
self.store.populate_monthly_active_users("@user:sever")
|
||||
self.pump()
|
||||
|
||||
self.store.upsert_monthly_active_user.assert_not_called()
|
||||
|
|
|
@ -171,6 +171,24 @@ class TestMauLimit(unittest.HomeserverTestCase):
|
|||
self.assertEqual(e.code, 403)
|
||||
self.assertEqual(e.errcode, Codes.RESOURCE_LIMIT_EXCEEDED)
|
||||
|
||||
def test_tracked_but_not_limited(self):
|
||||
self.hs.config.max_mau_value = 1 # should not matter
|
||||
self.hs.config.limit_usage_by_mau = False
|
||||
self.hs.config.mau_stats_only = True
|
||||
|
||||
# Simply being able to create 2 users indicates that the
|
||||
# limit was not reached.
|
||||
token1 = self.create_user("kermit1")
|
||||
self.do_sync_for_user(token1)
|
||||
token2 = self.create_user("kermit2")
|
||||
self.do_sync_for_user(token2)
|
||||
|
||||
# We do want to verify that the number of tracked users
|
||||
# matches what we want though
|
||||
count = self.store.get_monthly_active_count()
|
||||
self.reactor.advance(100)
|
||||
self.assertEqual(2, self.successResultOf(count))
|
||||
|
||||
def create_user(self, localpart):
|
||||
request_data = json.dumps(
|
||||
{
|
||||
|
|
|
@ -134,6 +134,7 @@ def default_config(name):
|
|||
config.hs_disabled_limit_type = ""
|
||||
config.max_mau_value = 50
|
||||
config.mau_trial_days = 0
|
||||
config.mau_stats_only = False
|
||||
config.mau_limits_reserved_threepids = []
|
||||
config.admin_contact = None
|
||||
config.rc_messages_per_second = 10000
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue