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' # 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() # Activate a language: This affects HTTP header HTTP_ACCEPT_LANGUAGE sent by # the Django test client. from django.utils import translation translation.activate("en") 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)