mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 14:03:30 +00:00 
			
		
		
		
	This will aligns the test organization with an upcoming reorganization of the code itself.
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from unittest import mock
 | 
						|
 | 
						|
from django.utils.timezone import now as timezone_now
 | 
						|
 | 
						|
from zerver.lib.test_classes import ZulipTestCase
 | 
						|
from zerver.lib.test_helpers import queries_captured
 | 
						|
from zerver.models import Client, UserActivity, UserProfile, flush_per_request_caches
 | 
						|
 | 
						|
 | 
						|
class ActivityTest(ZulipTestCase):
 | 
						|
    @mock.patch("stripe.Customer.list", return_value=[])
 | 
						|
    def test_activity(self, unused_mock: mock.Mock) -> None:
 | 
						|
        self.login("hamlet")
 | 
						|
        client, _ = Client.objects.get_or_create(name="website")
 | 
						|
        query = "/json/messages/flags"
 | 
						|
        last_visit = timezone_now()
 | 
						|
        count = 150
 | 
						|
        for activity_user_profile in UserProfile.objects.all():
 | 
						|
            UserActivity.objects.get_or_create(
 | 
						|
                user_profile=activity_user_profile,
 | 
						|
                client=client,
 | 
						|
                query=query,
 | 
						|
                count=count,
 | 
						|
                last_visit=last_visit,
 | 
						|
            )
 | 
						|
 | 
						|
        # Fails when not staff
 | 
						|
        result = self.client_get("/activity")
 | 
						|
        self.assertEqual(result.status_code, 302)
 | 
						|
 | 
						|
        user_profile = self.example_user("hamlet")
 | 
						|
        user_profile.is_staff = True
 | 
						|
        user_profile.save(update_fields=["is_staff"])
 | 
						|
 | 
						|
        flush_per_request_caches()
 | 
						|
        with queries_captured() as queries:
 | 
						|
            result = self.client_get("/activity")
 | 
						|
            self.assertEqual(result.status_code, 200)
 | 
						|
 | 
						|
        self.assert_length(queries, 19)
 | 
						|
 | 
						|
        flush_per_request_caches()
 | 
						|
        with queries_captured() as queries:
 | 
						|
            result = self.client_get("/realm_activity/zulip/")
 | 
						|
            self.assertEqual(result.status_code, 200)
 | 
						|
 | 
						|
        self.assert_length(queries, 8)
 | 
						|
 | 
						|
        flush_per_request_caches()
 | 
						|
        with queries_captured() as queries:
 | 
						|
            result = self.client_get("/user_activity/iago@zulip.com/")
 | 
						|
            self.assertEqual(result.status_code, 200)
 | 
						|
 | 
						|
        self.assert_length(queries, 4)
 |