class ViewTests(TestCase): def setUp(self): # set up one, catch-all rule. self.rule = RuleSet(enabled=True) self.rule.save() def test_rules_match_response(self): url = reverse('test_response') response = self.client.get(url) self.assertTrue(response.has_header('X-Profiler-Duration')) record = ProfilingRecord.objects.get() self.assertIsNone(record.user) # session is save even if user is Anonymous self.assertNotEqual(record.session_key, '') self.assertEqual(record.http_user_agent, "(u'',)") self.assertEqual(record.http_referer, u'') self.assertEqual(record.http_method, 'GET') self.assertEqual(record.view_func_name, 'test_response') self.assertEqual(str(record.duration), response['X-Profiler-Duration']) self.assertEqual(record.response_status_code, 200) def test_rules_match_view(self): url = reverse('test_view') response = self.client.get(url) self.assertTrue(response.has_header('X-Profiler-Duration')) record = ProfilingRecord.objects.get() self.assertIsNone(record.user) self.assertNotEqual(record.session_key, '') self.assertEqual(record.http_user_agent, "(u'',)") self.assertEqual(record.http_referer, u'') self.assertEqual(record.http_method, 'GET') self.assertEqual(record.view_func_name, 'test_view') self.assertEqual(str(record.duration), response['X-Profiler-Duration']) self.assertEqual(record.response_status_code, 200) def test_rules_match_view_no_session(self): url = reverse('test_view') settings.STORE_ANONYMOUS_SESSIONS = False response = self.client.get(url) self.assertTrue(response.has_header('X-Profiler-Duration')) record = ProfilingRecord.objects.get() self.assertIsNone(record.user) self.assertEqual(record.session_key, '') def test_no_rules_match(self): self.rule.delete() url = reverse('test_response') response = self.client.get(url) self.assertFalse(response.has_header('X-Profiler-Duration')) self.assertFalse(ProfilingRecord.objects.exists()) def test_404(self): # Validate that the profiler handles an error page url = reverse('test_404') response = self.client.get(url) self.assertTrue(response.has_header('X-Profiler-Duration')) self.assertEqual(ProfilingRecord.objects.get().response_status_code, 404)
class ViewTests(TestCase): def setUp(self): # set up one, catch-all rule. self.rule = RuleSet(enabled=True) self.rule.save() def test_rules_match_response(self): url = reverse('test_response') response = self.client.get(url) self.assertTrue(response.has_header('X-Profiler-Duration')) record = ProfilingRecord.objects.get() self.assertIsNone(record.user) # session is save even if user is Anonymous self.assertNotEqual(record.session_key, '') self.assertEqual(record.http_user_agent, "") self.assertEqual(record.http_referer, u'') self.assertEqual(record.http_method, 'GET') self.assertEqual(record.view_func_name, 'test_response') self.assertEqual(str(record.duration), response['X-Profiler-Duration']) self.assertEqual(record.response_status_code, 200) def test_rules_match_view(self): url = reverse('test_view') response = self.client.get(url) self.assertTrue(response.has_header('X-Profiler-Duration')) record = ProfilingRecord.objects.get() self.assertIsNone(record.user) self.assertNotEqual(record.session_key, '') self.assertEqual(record.http_user_agent, "") self.assertEqual(record.http_referer, u'') self.assertEqual(record.http_method, 'GET') self.assertEqual(record.view_func_name, 'test_view') self.assertEqual(str(record.duration), response['X-Profiler-Duration']) self.assertEqual(record.response_status_code, 200) def test_rules_match_view_no_session(self): url = reverse('test_view') settings.STORE_ANONYMOUS_SESSIONS = False response = self.client.get(url) self.assertTrue(response.has_header('X-Profiler-Duration')) record = ProfilingRecord.objects.get() self.assertIsNone(record.user) self.assertEqual(record.session_key, '') def test_no_rules_match(self): self.rule.delete() url = reverse('test_response') response = self.client.get(url) self.assertFalse(response.has_header('X-Profiler-Duration')) self.assertFalse(ProfilingRecord.objects.exists()) def test_404(self): # Validate that the profiler handles an error page url = reverse('test_404') response = self.client.get(url) self.assertTrue(response.has_header('X-Profiler-Duration')) self.assertEqual(ProfilingRecord.objects.get().response_status_code, 404)
def test_process_response(self): request = self.factory.get('/') middleware = ProfilingMiddleware() with self.assertRaises(AssertionError): middleware.process_response(request, None) # try no matching rules request.profiler = ProfilingRecord().start() response = middleware.process_response(request, MockResponse(200)) self.assertEqual(response.status_code, 200) self.assertFalse(hasattr(request, 'profiler')) # try matching a rule, and checking response values r1 = RuleSet() r1.save() request.profiler = ProfilingRecord().start() response = middleware.process_response(request, MockResponse(200)) self.assertIsNotNone(response) self.assertTrue(request.profiler.response_status_code, response.status_code) self.assertTrue(response['X-Profiler-Duration'], request.profiler.duration)
def test_process_response(self): request = self.factory.get('/') middleware = ProfilingMiddleware() with self.assertRaises(AssertionError): middleware.process_response(request, None) # try no matching rules request.profiler = ProfilingRecord().start() response = middleware.process_response(request, MockResponse(200)) self.assertEqual(response.status_code, 200) self.assertFalse(hasattr(request, 'profiler')) # try matching a rule, and checking response values r1 = RuleSet() r1.save() request.profiler = ProfilingRecord().start() response = middleware.process_response(request, MockResponse(200)) self.assertIsNotNone(response) self.assertTrue(request.profiler.response_status_code, response.status_code) self.assertTrue(response['X-Profiler-Duration'], request.profiler.duration)
def test_process_response_signal_cancellation(self): request = self.factory.get('/') request.profiler = ProfilingRecord().start() middleware = ProfilingMiddleware() # try matching a rule, anc checking response values r1 = RuleSet() r1.save() self.signal_received = False def on_request_profile_complete(sender, **kwargs): self.signal_received = True kwargs.get('instance').cancel() request_profile_complete.connect(on_request_profile_complete) middleware.process_response(request, MockResponse(200)) # because we returned False from the signal receiver, # we should have stopped profiling. self.assertTrue(self.signal_received) # because we called cancel(), the record is not saved. self.assertIsNone(request.profiler.id)
def test_process_response_signal_cancellation(self): request = self.factory.get('/') request.profiler = ProfilingRecord().start() middleware = ProfilingMiddleware() # try matching a rule, anc checking response values r1 = RuleSet() r1.save() self.signal_received = False def on_request_profile_complete(sender, **kwargs): self.signal_received = True kwargs.get('instance').cancel() request_profile_complete.connect(on_request_profile_complete) middleware.process_response(request, MockResponse(200)) # because we returned False from the signal receiver, # we should have stopped profiling. self.assertTrue(self.signal_received) # because we called cancel(), the record is not saved. self.assertIsNone(request.profiler.id)
def test_live_rules(self): r1 = RuleSet(uri_regex="", enabled=True) r1.save() self.assertEqual(RuleSet.objects.live_rules().count(), 1) r2 = RuleSet(uri_regex="", enabled=True) r2.save() self.assertEqual(RuleSet.objects.live_rules().count(), 2) r2.enabled = False r2.save() self.assertEqual(RuleSet.objects.live_rules().count(), 1)
def test_live_rules(self): r1 = RuleSet(uri_regex="", enabled=True) r1.save() self.assertEqual(RuleSet.objects.live_rules().count(), 1) r2 = RuleSet(uri_regex="", enabled=True) r2.save() self.assertEqual(RuleSet.objects.live_rules().count(), 2) r2.enabled = False r2.save() self.assertEqual(RuleSet.objects.live_rules().count(), 1)