mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	logging: replace mock.patch() for logging with assertLogs()
This commit removes mock.patch with assertLogs(). * Adds return value to do_rest_call() in outgoing_webhook.py, to support asserting log output in test_outgoing_webhook_system.py. * Logs are not asserted in test_realm.py because it would require to users to be queried using users=User.objects.filter(realm=realm) and the order of resulting queryset varies for each run. * In test_decorators.py, replacement of mock.patch is not done because I'm not sure if it's worth the effort to replace it as it's a return value of a function. Tweaked by tabbott to set proper mypy types.
This commit is contained in:
		
				
					committed by
					
						
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							5d79dff00b
						
					
				
				
					commit
					cbfd6464a5
				
			@@ -319,16 +319,19 @@ class TestGetChartData(ZulipTestCase):
 | 
			
		||||
 | 
			
		||||
        realm.date_created = timezone_now() - timedelta(days=3)
 | 
			
		||||
        realm.save(update_fields=["date_created"])
 | 
			
		||||
        with mock.patch('logging.warning'):
 | 
			
		||||
            result = self.client_get('/json/analytics/chart_data',
 | 
			
		||||
                                     {'chart_name': 'messages_sent_over_time'})
 | 
			
		||||
        with self.assertLogs(level="WARNING") as m:
 | 
			
		||||
            result = self.client_get('/json/analytics/chart_data', {'chart_name': 'messages_sent_over_time'})
 | 
			
		||||
            self.assertEqual(m.output, [f"WARNING:root:User from realm zulip attempted to access /stats, but the computed start time: {realm.date_created} (creation of realm or installation) is later than the computed end time: 0001-01-01 00:00:00+00:00 (last successful analytics update). Is the analytics cron job running?"])
 | 
			
		||||
 | 
			
		||||
        self.assert_json_error_contains(result, 'No analytics data available')
 | 
			
		||||
 | 
			
		||||
        realm.date_created = timezone_now() - timedelta(days=1, hours=2)
 | 
			
		||||
        realm.save(update_fields=["date_created"])
 | 
			
		||||
        with mock.patch('logging.warning'):
 | 
			
		||||
        with self.assertLogs(level="WARNING") as m:
 | 
			
		||||
            result = self.client_get('/json/analytics/chart_data',
 | 
			
		||||
                                     {'chart_name': 'messages_sent_over_time'})
 | 
			
		||||
            self.assertEqual(m.output, [f"WARNING:root:User from realm zulip attempted to access /stats, but the computed start time: {realm.date_created} (creation of realm or installation) is later than the computed end time: 0001-01-01 00:00:00+00:00 (last successful analytics update). Is the analytics cron job running?"])
 | 
			
		||||
 | 
			
		||||
        self.assert_json_error_contains(result, 'No analytics data available')
 | 
			
		||||
 | 
			
		||||
        realm.date_created = timezone_now() - timedelta(days=1, minutes=10)
 | 
			
		||||
@@ -349,9 +352,11 @@ class TestGetChartData(ZulipTestCase):
 | 
			
		||||
 | 
			
		||||
        realm.date_created = timezone_now() - timedelta(days=3)
 | 
			
		||||
        realm.save(update_fields=["date_created"])
 | 
			
		||||
        with mock.patch('logging.warning'):
 | 
			
		||||
        with self.assertLogs(level="WARNING") as m:
 | 
			
		||||
            result = self.client_get('/json/analytics/chart_data',
 | 
			
		||||
                                     {'chart_name': 'messages_sent_over_time'})
 | 
			
		||||
            self.assertEqual(m.output, [f"WARNING:root:User from realm zulip attempted to access /stats, but the computed start time: {realm.date_created} (creation of realm or installation) is later than the computed end time: {end_time} (last successful analytics update). Is the analytics cron job running?"])
 | 
			
		||||
 | 
			
		||||
        self.assert_json_error_contains(result, 'No analytics data available')
 | 
			
		||||
 | 
			
		||||
        realm.date_created = timezone_now() - timedelta(days=1, minutes=10)
 | 
			
		||||
@@ -372,9 +377,11 @@ class TestGetChartData(ZulipTestCase):
 | 
			
		||||
 | 
			
		||||
        realm.date_created = timezone_now() - timedelta(days=1, hours=2)
 | 
			
		||||
        realm.save(update_fields=["date_created"])
 | 
			
		||||
        with mock.patch('logging.warning'):
 | 
			
		||||
        with self.assertLogs(level="WARNING") as m:
 | 
			
		||||
            result = self.client_get('/json/analytics/chart_data',
 | 
			
		||||
                                     {'chart_name': 'messages_sent_over_time'})
 | 
			
		||||
            self.assertEqual(m.output, [f"WARNING:root:User from realm zulip attempted to access /stats, but the computed start time: {realm.date_created} (creation of realm or installation) is later than the computed end time: {end_time} (last successful analytics update). Is the analytics cron job running?"])
 | 
			
		||||
 | 
			
		||||
        self.assert_json_error_contains(result, 'No analytics data available')
 | 
			
		||||
 | 
			
		||||
        realm.date_created = timezone_now() - timedelta(days=1, minutes=10)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user