diff --git a/conftest.py b/conftest.py new file mode 100644 index 000000000..5d78f12b2 --- /dev/null +++ b/conftest.py @@ -0,0 +1,51 @@ +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) diff --git a/setup.cfg b/setup.cfg index c4744ae58..433dd204a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -6,3 +6,9 @@ line_length=100 multi_line_output=4 skip=migrations add_imports=from __future__ import absolute_import,from __future__ import unicode_literals + + +[pytest] +django_find_project = false +python_files=test_*.py +testpaths=wagtail diff --git a/wagtail/wagtailcore/tests/test_migrations.py b/wagtail/wagtailcore/tests/test_migrations.py index 967b20680..482d5c553 100644 --- a/wagtail/wagtailcore/tests/test_migrations.py +++ b/wagtail/wagtailcore/tests/test_migrations.py @@ -10,11 +10,11 @@ from django.db.migrations.autodetector import MigrationAutodetector from django.db.migrations.loader import MigrationLoader from django.db.migrations.questioner import MigrationQuestioner from django.db.migrations.state import ProjectState -from django.test import TransactionTestCase +from django.test import TestCase from django.utils.six import iteritems -class TestForMigrations(TransactionTestCase): +class TestForMigrations(TestCase): def test__migrations(self): app_labels = set(app.label for app in apps.get_app_configs() if app.name.startswith('wagtail.'))