|
1 | 1 | # 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, F811 |
| 22 | + except ImportError: |
| 23 | + pass |
| 24 | + else: |
| 25 | + return setup_databases, teardown_databases |
| 26 | + |
6 | 27 | # In Django prior to 1.11, teardown_databases is only available as a method on DiscoverRunner
|
7 |
| - from django.test.runner import ( # noqa: F401 |
8 |
| - setup_databases, |
9 |
| - DiscoverRunner as _DiscoverRunner, |
10 |
| - ) |
| 28 | + from django.test.runner import setup_databases, DiscoverRunner # noqa: F401, F811 |
11 | 29 |
|
12 | 30 | def teardown_databases(db_cfg, verbosity):
|
13 |
| - _DiscoverRunner(verbosity=verbosity, interactive=False).teardown_databases( |
| 31 | + DiscoverRunner(verbosity=verbosity, interactive=False).teardown_databases( |
14 | 32 | db_cfg
|
15 | 33 | )
|
| 34 | + |
| 35 | + return setup_databases, teardown_databases |
| 36 | + |
| 37 | + |
| 38 | +setup_databases, teardown_databases = _get_setup_and_teardown_databases() |
| 39 | +del _get_setup_and_teardown_databases |
0 commit comments