Exemple #1
0
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)
Exemple #2
0
 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
Exemple #3
0
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))
Exemple #4
0
 def setUp(self):
     url = '/views_log/'
     factory = RequestFactory()
     self.request = factory.get(url)
     self.middleware = ViewTimeLoggerMiddleware()