Coverage for paperless/middleware.py: 91%

19 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-10 09:07 +0000

1from compression_middleware.middleware import CompressionMiddleware 

2from django.conf import settings 

3 

4from paperless import version 

5 

6 

7class StreamAwareCompressionMiddleware(CompressionMiddleware): 

8 """ 

9 Bypasses compression for server-sent streams (text/event-stream). 

10 

11 See https://github.com/friedelwolff/django-compression-middleware/pull/7 

12 """ 

13 

14 def process_response(self, request, response): 

15 content_type = response.headers.get("Content-Type", "") 

16 if content_type.startswith("text/event-stream"): 16 ↛ 17line 16 didn't jump to line 17 because the condition on line 16 was never true

17 return response 

18 return super().process_response(request, response) 

19 

20 

21class ApiVersionMiddleware: 

22 def __init__(self, get_response): 

23 self.get_response = get_response 

24 

25 def __call__(self, request): 

26 response = self.get_response(request) 

27 if request.user.is_authenticated: 

28 versions = settings.REST_FRAMEWORK["ALLOWED_VERSIONS"] 

29 response["X-Api-Version"] = versions[len(versions) - 1] 

30 response["X-Version"] = version.__full_version_str__ 

31 

32 return response