Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.10/site-packages/django/db/__init__.py: 75%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

16 statements  

1from django.core import signals 

2from django.db.utils import ( 

3 DEFAULT_DB_ALIAS, 

4 DJANGO_VERSION_PICKLE_KEY, 

5 ConnectionHandler, 

6 ConnectionRouter, 

7 DatabaseError, 

8 DataError, 

9 Error, 

10 IntegrityError, 

11 InterfaceError, 

12 InternalError, 

13 NotSupportedError, 

14 OperationalError, 

15 ProgrammingError, 

16) 

17from django.utils.connection import ConnectionProxy 

18 

19__all__ = [ 

20 "close_old_connections", 

21 "connection", 

22 "connections", 

23 "reset_queries", 

24 "router", 

25 "DatabaseError", 

26 "IntegrityError", 

27 "InternalError", 

28 "ProgrammingError", 

29 "DataError", 

30 "NotSupportedError", 

31 "Error", 

32 "InterfaceError", 

33 "OperationalError", 

34 "DEFAULT_DB_ALIAS", 

35 "DJANGO_VERSION_PICKLE_KEY", 

36] 

37 

38connections = ConnectionHandler() 

39 

40router = ConnectionRouter() 

41 

42# For backwards compatibility. Prefer connections['default'] instead. 

43connection = ConnectionProxy(connections, DEFAULT_DB_ALIAS) 

44 

45 

46# Register an event to reset saved queries when a Django request is started. 

47def reset_queries(**kwargs): 

48 for conn in connections.all(initialized_only=True): 

49 conn.queries_log.clear() 

50 

51 

52signals.request_started.connect(reset_queries) 

53 

54 

55# Register an event to reset transaction state and close connections past 

56# their lifetime. 

57def close_old_connections(**kwargs): 

58 for conn in connections.all(initialized_only=True): 

59 conn.close_if_unusable_or_obsolete() 

60 

61 

62signals.request_started.connect(close_old_connections) 

63signals.request_finished.connect(close_old_connections)