Skip to content

Commit ed04bb0

Browse files
committed
Fix support for Django 3.2
1 parent e613a88 commit ed04bb0

File tree

1 file changed

+31
-4
lines changed

1 file changed

+31
-4
lines changed

pytest_django/compat.py

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,29 @@
11
# This file cannot be imported from until Django sets up
2-
try:
3-
# Django 1.11
4-
from django.test.utils import setup_databases, teardown_databases # noqa: F401
5-
except ImportError:
2+
3+
4+
def _get_setup_and_teardown_databases():
5+
try:
6+
# Django 3.2+ has added timing capabilities that we don't really support
7+
# right now. Unfortunately that new time_keeper is required.
8+
from django.test.utils import NullTimeKeeper
9+
except ImportError:
10+
pass
11+
else:
12+
from django.test.utils import setup_databases, teardown_databases
13+
14+
def wrapped_setup_databases(*args, **kwargs):
15+
return setup_databases(*args, time_keeper=NullTimeKeeper(), **kwargs)
16+
17+
return wrapped_setup_databases, teardown_databases
18+
19+
try:
20+
# Django 1.11+
21+
from django.test.utils import setup_databases, teardown_databases # noqa: F401
22+
except ImportError:
23+
pass
24+
else:
25+
return setup_databases, teardown_databases
26+
627
# In Django prior to 1.11, teardown_databases is only available as a method on DiscoverRunner
728
from django.test.runner import ( # noqa: F401
829
setup_databases,
@@ -13,3 +34,9 @@ def teardown_databases(db_cfg, verbosity):
1334
_DiscoverRunner(verbosity=verbosity, interactive=False).teardown_databases(
1435
db_cfg
1536
)
37+
38+
return setup_databases, teardown_databases
39+
40+
41+
setup_databases, teardown_databases = _get_setup_and_teardown_databases()
42+
del _get_setup_and_teardown_databases

0 commit comments

Comments
 (0)