2016-06-17 14:06:21 +00:00
|
|
|
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'):
|
2017-10-18 20:10:49 +00:00
|
|
|
os.environ['DATABASE_ENGINE'] = 'django.db.backends.postgresql'
|
2016-06-17 14:06:21 +00:00
|
|
|
|
|
|
|
# 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()
|
|
|
|
|
2018-10-29 10:25:49 +00:00
|
|
|
# Activate a language: This affects HTTP header HTTP_ACCEPT_LANGUAGE sent by
|
|
|
|
# the Django test client.
|
|
|
|
from django.utils import translation
|
|
|
|
translation.activate("en")
|
|
|
|
|
2016-06-17 14:06:21 +00:00
|
|
|
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)
|