mirror of
https://github.com/wagtail/wagtail.git
synced 2024-11-30 19:20:56 +01:00
d82e38e11e
This adds a conftest.py module to setup the test infrastructure correctly. It doesn't yet add pytest and pytest-django to the testing requirements so for now it is completly optional. This change also updates the test_migrations testcase to use a regular TestCase baseclass instead of the TransactionTestCase. Otherwise the following tests fail with db errors.
52 lines
1.9 KiB
Python
52 lines
1.9 KiB
Python
from __future__ import absolute_import, unicode_literals
|
|
|
|
import os
|
|
import shutil
|
|
import warnings
|
|
|
|
import django
|
|
|
|
|
|
def pytest_addoption(parser):
|
|
parser.addoption('--deprecation', choices=['all', 'pending', 'imminent', 'none'], default='pending')
|
|
parser.addoption('--postgres', action='store_true')
|
|
parser.addoption('--elasticsearch', action='store_true')
|
|
|
|
|
|
def pytest_configure(config):
|
|
deprecation = config.getoption('deprecation')
|
|
|
|
only_wagtail = r'^wagtail(\.|$)'
|
|
if deprecation == 'all':
|
|
# Show all deprecation warnings from all packages
|
|
warnings.simplefilter('default', DeprecationWarning)
|
|
warnings.simplefilter('default', PendingDeprecationWarning)
|
|
elif deprecation == 'pending':
|
|
# Show all deprecation warnings from wagtail
|
|
warnings.filterwarnings('default', category=DeprecationWarning, module=only_wagtail)
|
|
warnings.filterwarnings('default', category=PendingDeprecationWarning, module=only_wagtail)
|
|
elif deprecation == 'imminent':
|
|
# Show only imminent deprecation warnings from wagtail
|
|
warnings.filterwarnings('default', category=DeprecationWarning, module=only_wagtail)
|
|
elif deprecation == 'none':
|
|
# Deprecation warnings are ignored by default
|
|
pass
|
|
|
|
if config.getoption('postgres'):
|
|
os.environ['DATABASE_ENGINE'] = 'django.db.backends.postgresql_psycopg2'
|
|
|
|
# Setup django after processing the pytest arguments so that the env
|
|
# variables are available in the settings
|
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'wagtail.tests.settings')
|
|
django.setup()
|
|
|
|
from wagtail.tests.settings import MEDIA_ROOT, STATIC_ROOT
|
|
shutil.rmtree(STATIC_ROOT, ignore_errors=True)
|
|
shutil.rmtree(MEDIA_ROOT, ignore_errors=True)
|
|
|
|
|
|
def pytest_unconfigure(config):
|
|
from wagtail.tests.settings import MEDIA_ROOT, STATIC_ROOT
|
|
shutil.rmtree(STATIC_ROOT, ignore_errors=True)
|
|
shutil.rmtree(MEDIA_ROOT, ignore_errors=True)
|