Beispiel #1
0
 def test_should_reuse_cache_singleton(self):
     """
     https://github.com/chibisov/drf-extensions/issues/26
     https://docs.djangoproject.com/en/dev/topics/cache/#django.core.cache.caches
     """
     cache_response_instance = cache_response()
     another_cache_response_instance = cache_response()
     self.assertTrue(cache_response_instance.cache is another_cache_response_instance.cache)
Beispiel #2
0
 def test_should_reuse_cache_singleton(self):
     """
     https://github.com/chibisov/drf-extensions/issues/26
     https://docs.djangoproject.com/en/dev/topics/cache/#django.core.cache.caches
     """
     cache_response_instance = cache_response()
     another_cache_response_instance = cache_response()
     self.assertTrue(cache_response_instance.cache is another_cache_response_instance.cache)
Beispiel #3
0
    def test_should_store_response_in_cache_with_timeout_from_settings(self):
        cache_response_decorator = cache_response()
        cache_response_decorator.cache.set = Mock()

        class TestView(views.APIView):
            @cache_response_decorator
            def get(self, request, *args, **kwargs):
                return Response('Response from method 4')

        view_instance = TestView()
        response = view_instance.dispatch(request=self.request)
        self.assertTrue(cache_response_decorator.cache.set.called, 'Cache saving should be performed')
        self.assertEqual(cache_response_decorator.cache.set.call_args_list[0][0][2], 100)
Beispiel #4
0
    def test_cache_response_with_error_by_default(self):
        cache_response_decorator = cache_response()

        class TestView(views.APIView):
            def __init__(self, status, *args, **kwargs):
                self.status = status
                super().__init__(*args, **kwargs)

            @cache_response_decorator
            def get(self, request, *args, **kwargs):
                return Response(status=self.status)

        with patch.object(cache_response_decorator.cache, 'set'):
            for status in (400, 500):
                view_instance = TestView(status=status)
                view_instance.dispatch(request=self.request)

                self.assertTrue(cache_response_decorator.cache.set.called)
Beispiel #5
0
    def test_cache_response_with_error_by_default(self):
        cache_response_decorator = cache_response()

        class TestView(views.APIView):

            def __init__(self, status, *args, **kwargs):
                self.status = status
                super(TestView, self).__init__(*args, **kwargs)

            @cache_response_decorator
            def get(self, request, *args, **kwargs):
                return Response(status=self.status)

        with patch.object(cache_response_decorator.cache, 'set'):
            for status in (400, 500):
                view_instance = TestView(status=status)
                view_instance.dispatch(request=self.request)

                self.assertTrue(cache_response_decorator.cache.set.called)
Beispiel #6
0
 def test_should_use_cache_error_from_decorator_if_it_is_specified(self):
     self.assertTrue(cache_response(cache_errors=True).cache_errors)
Beispiel #7
0
 def test_should_use_cache_error_from_settings_by_default(self):
     self.assertFalse(cache_response().cache_errors)
Beispiel #8
0
 def test_should_use_cache_error_from_decorator_if_it_is_specified(self):
     self.assertTrue(cache_response(cache_errors=True).cache_errors)
Beispiel #9
0
 def test_should_use_cache_error_from_settings_by_default(self):
     self.assertFalse(cache_response().cache_errors)
Beispiel #10
0
 def test_dont_connect_to_cache_on_init(self):
     with patch('rest_framework_extensions.cache.decorators.get_cache'):
         cache_response()
         self.assertFalse(
             rest_framework_extensions.cache.decorators.get_cache.called)