Coverage for requests_tracker/settings.py: 100%

15 statements  

« prev     ^ index     » next       coverage.py v7.4.4, created at 2024-04-18 22:19 +0000

1from functools import lru_cache 

2from typing import Any, Dict 

3 

4from django.conf import settings 

5from django.http import HttpRequest 

6 

7from requests_tracker import APP_NAME 

8 

9CONFIG_DEFAULTS = { 

10 "ENABLE_STACKTRACES": True, 

11 "ENABLE_STACKTRACES_LOCALS": False, 

12 "HIDE_IN_STACKTRACES": ( 

13 "socketserver", 

14 "threading", 

15 "wsgiref", 

16 APP_NAME, 

17 "django.db", 

18 "django.core.handlers", 

19 "django.core.servers", 

20 "django.utils.decorators", 

21 "django.utils.deprecation", 

22 "django.utils.functional", 

23 ), 

24 "SQL_WARNING_THRESHOLD": 500, # milliseconds 

25 "REQUESTS_TRACKER_CONFIG": True, 

26 "TRACK_SQL": True, 

27 "IGNORE_SQL_PATTERNS": (), 

28 "IGNORE_PATHS_PATTERNS": (), 

29} 

30 

31 

32@lru_cache() 

33def get_config() -> Dict[str, Any]: 

34 user_config = getattr(settings, "REQUESTS_TRACKER_CONFIG", {}) 

35 config = CONFIG_DEFAULTS.copy() 

36 config.update(user_config) 

37 return config 

38 

39 

40def debug_application(request: HttpRequest) -> bool: 

41 requests_tracker_app = get_config()["REQUESTS_TRACKER_CONFIG"] 

42 return ( 

43 requests_tracker_app 

44 and settings.DEBUG 

45 and request.META.get("REMOTE_ADDR") in settings.INTERNAL_IPS 

46 )