Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 1f1df86

Browse files
committedNov 28, 2024
Fix warning on calling DB functions in appconfig.ready
1 parent a74c2dd commit 1f1df86

File tree

4 files changed

+33
-8
lines changed

4 files changed

+33
-8
lines changed
 

‎tests/test_app/apps.py

-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import contextlib
21
import sys
32

43
from django.apps import AppConfig
@@ -11,8 +10,6 @@ class TestAppConfig(AppConfig):
1110
name = "test_app"
1211

1312
def ready(self):
14-
from django.contrib.auth.models import User
15-
1613
register_iframe("test_app.views.view_to_iframe_sync_func")
1714
register_iframe(views.view_to_iframe_async_func)
1815
register_iframe(views.ViewToIframeSyncClass)
@@ -22,8 +19,3 @@ def ready(self):
2219

2320
if "test" in sys.argv:
2421
return
25-
26-
with contextlib.suppress(Exception):
27-
User.objects.create_superuser(
28-
username="admin", email="admin@example.com", password="password"
29-
)

‎tests/test_app/middleware.py

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import contextlib
2+
3+
from asgiref.sync import iscoroutinefunction, markcoroutinefunction
4+
5+
6+
class AutoCreateAdminMiddleware:
7+
async_capable = True
8+
sync_capable = True
9+
10+
def __init__(self, get_response):
11+
from django.contrib.auth.models import User
12+
13+
# One-time configuration and initialization.
14+
self.get_response = get_response
15+
with contextlib.suppress(Exception):
16+
User.objects.create_superuser(
17+
username="admin", email="admin@example.com", password="password"
18+
)
19+
20+
if iscoroutinefunction(self.get_response):
21+
markcoroutinefunction(self)
22+
23+
def __call__(self, request):
24+
if iscoroutinefunction(self.get_response):
25+
26+
async def async_call():
27+
return await self.get_response(request)
28+
29+
return async_call()
30+
31+
return self.get_response(request)

‎tests/test_app/settings_multi_db.py

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
MIDDLEWARE = [
3434
"django.middleware.security.SecurityMiddleware",
3535
"servestatic.middleware.ServeStaticMiddleware",
36+
"test_app.middleware.AutoCreateAdminMiddleware",
3637
"django.contrib.sessions.middleware.SessionMiddleware",
3738
"django.middleware.common.CommonMiddleware",
3839
"django.middleware.csrf.CsrfViewMiddleware",

‎tests/test_app/settings_single_db.py

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
MIDDLEWARE = [
3434
"django.middleware.security.SecurityMiddleware",
3535
"servestatic.middleware.ServeStaticMiddleware",
36+
"test_app.middleware.AutoCreateAdminMiddleware",
3637
"django.contrib.sessions.middleware.SessionMiddleware",
3738
"django.middleware.common.CommonMiddleware",
3839
"django.middleware.csrf.CsrfViewMiddleware",

0 commit comments

Comments
 (0)
Please sign in to comment.