class ViewMiddlewareTestCase(TestCase, TearDownTestCaseMixin): def setUp(self): url = '/views_log/' factory = RequestFactory() self.request = factory.get(url) self.middleware = ViewTimeLoggerMiddleware() def tearDown(self): self.tearDownMongo() def test_process_request(self): self.middleware.process_request(self.request) self.assertTrue( hasattr(self.request, 'time_logger') ) self.assertAlmostEqual( self.request.time_logger['start_dt'], datetime.datetime.now(), delta=datetime.timedelta(seconds=1), ) def test_process_view(self): view = views.ViewsLog.as_view() args = [1, 2, 3] kwargs = {'a': 1, 'b': 2, 'c': 3} self.middleware.process_request(self.request) self.middleware.process_view(self.request, view, args, kwargs) self.assertEqual(self.request.time_logger['view_func'], view) self.assertEqual(self.request.time_logger['view_args'], args) self.assertEqual(self.request.time_logger['view_kwargs'], kwargs) @mock.patch('time_logger.middleware.view_logger.ViewTimeLogger._log_view') def test_process_response(self, log_view_mock): self.middleware.process_response(self.request, None) self.assertTrue(log_view_mock.called) @mock.patch('time_logger.middleware.view_logger.ViewTimeLogger._log_view') def test_process_exception(self, log_view_mock): self.middleware.process_exception(self.request, None) self.assertTrue(log_view_mock.called)
def setUp(self): url = '/views_log/' factory = RequestFactory() self.request = factory.get(url) self.middleware = ViewTimeLoggerMiddleware() self.request.time_logger = { 'start_dt': datetime.datetime.now(), 'view_func': views.ViewsLog.as_view(), 'view_args': [1, 2, 3], 'view_kwargs': {'a': 1, 'b': 2, 'c': 3}, } user = User.objects.create(username='******') self.request.user = user
class LogViewFuncViewMiddlewareTestCase(TestCase, TearDownTestCaseMixin): def setUp(self): url = '/views_log/' factory = RequestFactory() self.request = factory.get(url) self.middleware = ViewTimeLoggerMiddleware() self.request.time_logger = { 'start_dt': datetime.datetime.now(), 'view_func': views.ViewsLog.as_view(), 'view_args': [1, 2, 3], 'view_kwargs': {'a': 1, 'b': 2, 'c': 3}, } user = User.objects.create(username='******') self.request.user = user def tearDown(self): self.tearDownMongo() def test_no_logging_without_settings(self): with self.settings(LOG_VIEW_TIME=None): self.middleware._log_view(self.request) self.assertFalse( models_mongo.ViewTimeLog.objects.all().count() ) def test_no_logging_with_small_duration(self): small_delta = datetime.timedelta(seconds=settings.LOG_VIEW_TIME - 2) self.request.time_logger['start_dt'] = self.request.time_logger['start_dt'] - small_delta self.middleware._log_view(self.request) self.assertFalse( models_mongo.ViewTimeLog.objects.all().count() ) def test_no_logging_with_big_duration(self): big_duration = settings.LOG_VIEW_TIME + 2 big_delta = datetime.timedelta(seconds=big_duration) self.request.time_logger['start_dt'] = self.request.time_logger['start_dt'] - big_delta self.middleware._log_view(self.request) self.assertTrue( models_mongo.ViewTimeLog.objects.all().count() ) log = models_mongo.ViewTimeLog.objects.get() self.assertEqual(log.duration, big_duration) self.assertEqual(log.view_func_path, 'time_logger.views.ViewsLog') self.assertEqual(log.view_args, self.request.time_logger['view_args']) self.assertEqual(log.view_kwargs, self.request.time_logger['view_kwargs']) self.assertEqual(log.request_get, {}) self.assertEqual(log.request_post, {}) self.assertAlmostEqual(log.dc, datetime.datetime.now(), delta=datetime.timedelta(seconds=1))
def setUp(self): url = '/views_log/' factory = RequestFactory() self.request = factory.get(url) self.middleware = ViewTimeLoggerMiddleware()