|
|
|
@ -12,6 +12,9 @@ |
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
|
|
|
# See the License for the specific language governing permissions and |
|
|
|
|
# limitations under the License. |
|
|
|
|
from mock import Mock |
|
|
|
|
|
|
|
|
|
from twisted.internet import defer |
|
|
|
|
|
|
|
|
|
from tests.unittest import HomeserverTestCase |
|
|
|
|
|
|
|
|
@ -23,7 +26,8 @@ class MonthlyActiveUsersTestCase(HomeserverTestCase): |
|
|
|
|
|
|
|
|
|
hs = self.setup_test_homeserver() |
|
|
|
|
self.store = hs.get_datastore() |
|
|
|
|
|
|
|
|
|
hs.config.limit_usage_by_mau = True |
|
|
|
|
hs.config.max_mau_value = 50 |
|
|
|
|
# Advance the clock a bit |
|
|
|
|
reactor.advance(FORTY_DAYS) |
|
|
|
|
|
|
|
|
@ -73,7 +77,7 @@ class MonthlyActiveUsersTestCase(HomeserverTestCase): |
|
|
|
|
active_count = self.store.get_monthly_active_count() |
|
|
|
|
self.assertEquals(self.get_success(active_count), user_num) |
|
|
|
|
|
|
|
|
|
# Test that regalar users are removed from the db |
|
|
|
|
# Test that regular users are removed from the db |
|
|
|
|
ru_count = 2 |
|
|
|
|
self.store.upsert_monthly_active_user("@ru1:server") |
|
|
|
|
self.store.upsert_monthly_active_user("@ru2:server") |
|
|
|
@ -139,3 +143,39 @@ class MonthlyActiveUsersTestCase(HomeserverTestCase): |
|
|
|
|
|
|
|
|
|
count = self.store.get_monthly_active_count() |
|
|
|
|
self.assertEquals(self.get_success(count), 0) |
|
|
|
|
|
|
|
|
|
def test_populate_monthly_users_is_guest(self): |
|
|
|
|
# Test that guest users are not added to mau list |
|
|
|
|
self.store.upsert_monthly_active_user = Mock() |
|
|
|
|
self.store.populate_monthly_active_users('user_id', True) |
|
|
|
|
self.pump() |
|
|
|
|
self.store.upsert_monthly_active_user.assert_not_called() |
|
|
|
|
|
|
|
|
|
def test_populate_monthly_users_should_update(self): |
|
|
|
|
self.store.upsert_monthly_active_user = Mock() |
|
|
|
|
|
|
|
|
|
self.store.is_trial_user = Mock( |
|
|
|
|
return_value=defer.succeed(False) |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
self.store.user_last_seen_monthly_active = Mock( |
|
|
|
|
return_value=defer.succeed(None) |
|
|
|
|
) |
|
|
|
|
self.store.populate_monthly_active_users('user_id') |
|
|
|
|
self.pump() |
|
|
|
|
self.store.upsert_monthly_active_user.assert_called_once() |
|
|
|
|
|
|
|
|
|
def test_populate_monthly_users_should_not_update(self): |
|
|
|
|
self.store.upsert_monthly_active_user = Mock() |
|
|
|
|
|
|
|
|
|
self.store.is_trial_user = Mock( |
|
|
|
|
return_value=defer.succeed(False) |
|
|
|
|
) |
|
|
|
|
self.store.user_last_seen_monthly_active = Mock( |
|
|
|
|
return_value=defer.succeed( |
|
|
|
|
self.hs.get_clock().time_msec() |
|
|
|
|
) |
|
|
|
|
) |
|
|
|
|
self.store.populate_monthly_active_users('user_id') |
|
|
|
|
self.pump() |
|
|
|
|
self.store.upsert_monthly_active_user.assert_not_called() |
|
|
|
|