diff --git a/README.md b/README.md index 798673e..eda7b30 100644 --- a/README.md +++ b/README.md @@ -91,6 +91,6 @@ tox ``` or, you can run them for a specific environment `tox -e py3.11-django4.2-wagtail5.2` or specific test -`tox -e py3.11-django4.2-wagtail5.2-sqlite wagtail_localize_git.tests.test_git.TestRepository` +`tox -e py3.11-django4.2-wagtail5.2-sqlite -- tests.test_git.TestRepository` To run the test app interactively, use `tox -e interactive`, visit `http://127.0.0.1:8020/admin/` and log in with `admin`/`changeme`. diff --git a/pyproject.toml b/pyproject.toml index a20bf87..987f622 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -58,13 +58,12 @@ name = "wagtail_localize_git" [tool.flit.sdist] exclude = [ - "wagtail_localize_git/tests", - "wagtail_localize_git/test", ".*", "*.db", "*.json", "*.ini", "*.yaml", + "tests", "CHANGELOG.md", "testmanage.py", ] @@ -92,6 +91,6 @@ ignore = ["E501"] fixable = ["C4", "E", "F", "I", "UP"] [tool.ruff.isort] -known-first-party = ["wagtail_localize_git"] +known-first-party = ["src", "wagtail_localize_git"] lines-between-types = 1 lines-after-imports = 2 diff --git a/wagtail_localize_git/__init__.py b/src/wagtail_localize_git/__init__.py similarity index 100% rename from wagtail_localize_git/__init__.py rename to src/wagtail_localize_git/__init__.py diff --git a/wagtail_localize_git/apps.py b/src/wagtail_localize_git/apps.py similarity index 100% rename from wagtail_localize_git/apps.py rename to src/wagtail_localize_git/apps.py diff --git a/wagtail_localize_git/git.py b/src/wagtail_localize_git/git.py similarity index 100% rename from wagtail_localize_git/git.py rename to src/wagtail_localize_git/git.py diff --git a/wagtail_localize_git/importer.py b/src/wagtail_localize_git/importer.py similarity index 100% rename from wagtail_localize_git/importer.py rename to src/wagtail_localize_git/importer.py diff --git a/wagtail_localize_git/management/__init__.py b/src/wagtail_localize_git/management/__init__.py similarity index 100% rename from wagtail_localize_git/management/__init__.py rename to src/wagtail_localize_git/management/__init__.py diff --git a/wagtail_localize_git/management/commands/__init__.py b/src/wagtail_localize_git/management/commands/__init__.py similarity index 100% rename from wagtail_localize_git/management/commands/__init__.py rename to src/wagtail_localize_git/management/commands/__init__.py diff --git a/wagtail_localize_git/management/commands/sync_git.py b/src/wagtail_localize_git/management/commands/sync_git.py similarity index 100% rename from wagtail_localize_git/management/commands/sync_git.py rename to src/wagtail_localize_git/management/commands/sync_git.py diff --git a/wagtail_localize_git/migrations/0001_initial.py b/src/wagtail_localize_git/migrations/0001_initial.py similarity index 100% rename from wagtail_localize_git/migrations/0001_initial.py rename to src/wagtail_localize_git/migrations/0001_initial.py diff --git a/wagtail_localize_git/migrations/__init__.py b/src/wagtail_localize_git/migrations/__init__.py similarity index 100% rename from wagtail_localize_git/migrations/__init__.py rename to src/wagtail_localize_git/migrations/__init__.py diff --git a/wagtail_localize_git/models.py b/src/wagtail_localize_git/models.py similarity index 100% rename from wagtail_localize_git/models.py rename to src/wagtail_localize_git/models.py diff --git a/wagtail_localize_git/sync.py b/src/wagtail_localize_git/sync.py similarity index 100% rename from wagtail_localize_git/sync.py rename to src/wagtail_localize_git/sync.py diff --git a/wagtail_localize_git/templates/wagtail_localize_git/dashboard.html b/src/wagtail_localize_git/templates/wagtail_localize_git/dashboard.html similarity index 100% rename from wagtail_localize_git/templates/wagtail_localize_git/dashboard.html rename to src/wagtail_localize_git/templates/wagtail_localize_git/dashboard.html diff --git a/wagtail_localize_git/views.py b/src/wagtail_localize_git/views.py similarity index 100% rename from wagtail_localize_git/views.py rename to src/wagtail_localize_git/views.py diff --git a/wagtail_localize_git/wagtail_hooks.py b/src/wagtail_localize_git/wagtail_hooks.py similarity index 100% rename from wagtail_localize_git/wagtail_hooks.py rename to src/wagtail_localize_git/wagtail_hooks.py diff --git a/wagtail_localize_git/test/__init__.py b/tests/__init__.py similarity index 100% rename from wagtail_localize_git/test/__init__.py rename to tests/__init__.py diff --git a/testmanage.py b/tests/manage.py similarity index 95% rename from testmanage.py rename to tests/manage.py index 7c69391..3185fb0 100644 --- a/testmanage.py +++ b/tests/manage.py @@ -9,7 +9,8 @@ from django.core.management import execute_from_command_line -os.environ["DJANGO_SETTINGS_MODULE"] = "wagtail_localize_git.test.settings" +os.environ["DJANGO_SETTINGS_MODULE"] = "testapp.settings" +sys.path.append("tests") def make_parser(): diff --git a/wagtail_localize_git/tests/test_git.py b/tests/test_git.py similarity index 100% rename from wagtail_localize_git/tests/test_git.py rename to tests/test_git.py diff --git a/wagtail_localize_git/tests/test_importer.py b/tests/test_importer.py similarity index 99% rename from wagtail_localize_git/tests/test_importer.py rename to tests/test_importer.py index 8e7a303..f402912 100644 --- a/wagtail_localize_git/tests/test_importer.py +++ b/tests/test_importer.py @@ -7,6 +7,7 @@ from django.core.exceptions import ValidationError from django.test import TestCase from django.utils import timezone +from testapp.models import TestPage from wagtail.models import Locale, Page from wagtail_localize.models import ( MissingRelatedObjectError, @@ -16,7 +17,6 @@ from wagtail_localize_git.importer import Importer from wagtail_localize_git.models import Resource, SyncLog -from wagtail_localize_git.test.models import TestPage def create_test_page(**kwargs): diff --git a/wagtail_localize_git/tests/test_models.py b/tests/test_models.py similarity index 97% rename from wagtail_localize_git/tests/test_models.py rename to tests/test_models.py index d618bf7..3bd9b22 100644 --- a/wagtail_localize_git/tests/test_models.py +++ b/tests/test_models.py @@ -1,4 +1,5 @@ from django.test import TestCase +from testapp.models import TestPage, TestSnippet from wagtail.documents.models import Document from wagtail.images.models import Image from wagtail.images.tests.utils import get_test_image_file @@ -6,7 +7,6 @@ from wagtail_localize.models import TranslationSource from wagtail_localize_git.models import Resource -from wagtail_localize_git.test.models import TestPage, TestSnippet def create_test_page(**kwargs): diff --git a/wagtail_localize_git/tests/test_sync.py b/tests/test_sync.py similarity index 99% rename from wagtail_localize_git/tests/test_sync.py rename to tests/test_sync.py index 57a0eb1..a54416b 100644 --- a/wagtail_localize_git/tests/test_sync.py +++ b/tests/test_sync.py @@ -6,12 +6,12 @@ import pygit2 from django.test import TestCase, override_settings +from testapp.models import TestPage from wagtail.models import Locale, Page from wagtail_localize.models import StringTranslation, Translation, TranslationSource from wagtail_localize_git.models import Resource, SyncLog from wagtail_localize_git.sync import SyncPushError, _pull, _push, get_sync_manager -from wagtail_localize_git.test.models import TestPage from .utils import GitRepositoryUtils diff --git a/wagtail_localize_git/tests/test_views.py b/tests/test_views.py similarity index 98% rename from wagtail_localize_git/tests/test_views.py rename to tests/test_views.py index 93e578d..a770e69 100644 --- a/wagtail_localize_git/tests/test_views.py +++ b/tests/test_views.py @@ -4,12 +4,12 @@ from django.contrib.auth.models import Group from django.test import TestCase from django.urls import reverse +from testapp.models import TestPage from wagtail.models import Locale, Page from wagtail.test.utils import WagtailTestUtils from wagtail_localize.models import Translation, TranslationSource from wagtail_localize_git.models import Resource, SyncLog, SyncLogResource -from wagtail_localize_git.test.models import TestPage def create_test_page(**kwargs): diff --git a/wagtail_localize_git/test/migrations/__init__.py b/tests/testapp/__init__.py similarity index 100% rename from wagtail_localize_git/test/migrations/__init__.py rename to tests/testapp/__init__.py diff --git a/wagtail_localize_git/test/apps.py b/tests/testapp/apps.py similarity index 84% rename from wagtail_localize_git/test/apps.py rename to tests/testapp/apps.py index 909265a..7058e55 100644 --- a/wagtail_localize_git/test/apps.py +++ b/tests/testapp/apps.py @@ -3,6 +3,6 @@ class WagtailLocalizeGitTestAppConfig(AppConfig): label = "wagtail_localize_git_test" - name = "wagtail_localize_git.test" + name = "testapp" verbose_name = "Localize Git tests" default_auto_field = "django.db.models.AutoField" diff --git a/wagtail_localize_git/test/migrations/0001_initial.py b/tests/testapp/migrations/0001_initial.py similarity index 100% rename from wagtail_localize_git/test/migrations/0001_initial.py rename to tests/testapp/migrations/0001_initial.py diff --git a/wagtail_localize_git/tests/__init__.py b/tests/testapp/migrations/__init__.py similarity index 100% rename from wagtail_localize_git/tests/__init__.py rename to tests/testapp/migrations/__init__.py diff --git a/wagtail_localize_git/test/models.py b/tests/testapp/models.py similarity index 100% rename from wagtail_localize_git/test/models.py rename to tests/testapp/models.py diff --git a/wagtail_localize_git/test/settings.py b/tests/testapp/settings.py similarity index 92% rename from wagtail_localize_git/test/settings.py rename to tests/testapp/settings.py index 26bd3a8..c815ef2 100644 --- a/wagtail_localize_git/test/settings.py +++ b/tests/testapp/settings.py @@ -35,26 +35,16 @@ INSTALLED_APPS = [ "wagtail_localize_git", - "wagtail_localize_git.test", + "testapp", "wagtail_localize", - "wagtail.contrib.search_promotions", - "wagtail.contrib.forms", - "wagtail.contrib.redirects", - "wagtail.embeds", "wagtail.users", "wagtail.snippets", "wagtail.documents", "wagtail.images", - "wagtail.search", "wagtail.admin", - "wagtail.api.v2", - "wagtail.contrib.modeladmin", - "wagtail.contrib.routable_page", - "wagtail.contrib.styleguide", "wagtail.sites", "wagtail", "taggit", - "rest_framework", "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", @@ -75,7 +65,7 @@ "wagtail.contrib.redirects.middleware.RedirectMiddleware", ] -ROOT_URLCONF = "wagtail_localize_git.test.urls" +ROOT_URLCONF = "testapp.urls" TEMPLATES = [ { diff --git a/wagtail_localize_git/test/urls.py b/tests/testapp/urls.py similarity index 100% rename from wagtail_localize_git/test/urls.py rename to tests/testapp/urls.py diff --git a/wagtail_localize_git/tests/utils.py b/tests/utils.py similarity index 100% rename from wagtail_localize_git/tests/utils.py rename to tests/utils.py diff --git a/tox.ini b/tox.ini index 3b42090..b3246d2 100644 --- a/tox.ini +++ b/tox.ini @@ -28,7 +28,7 @@ pass_env = NO_COLOR setenv = - PYTHONPATH = {toxinidir} + PYTHONPATH = {toxinidir}/tests:{toxinidir} PYTHONDEVMODE = 1 deps = @@ -47,8 +47,10 @@ deps = .[testing] install_command = python -Im pip install -U --pre {opts} {packages} +commands_pre = + python -I {toxinidir}/tests/manage.py migrate commands = - python -m coverage run testmanage.py test --deprecation all {posargs: -v 2} + python -m coverage run {toxinidir}/tests/manage.py test --deprecation all {posargs: -v 2} [testenv:coverage-report] commands = @@ -60,13 +62,13 @@ description = An interactive environment for local testing purposes basepython = python3.11 commands_pre = - python {toxinidir}/testmanage.py makemigrations - python {toxinidir}/testmanage.py migrate - python {toxinidir}/testmanage.py shell -c "from django.contrib.auth.models import User;(not User.objects.filter(username='admin').exists()) and User.objects.create_superuser('admin', 'super@example.com', 'changeme')" - python {toxinidir}/testmanage.py createcachetable + python {toxinidir}/tests/manage.py makemigrations + python {toxinidir}/tests/manage.py migrate + python {toxinidir}/tests/manage.py shell -c "from django.contrib.auth.models import User;(not User.objects.filter(username='admin').exists()) and User.objects.create_superuser('admin', 'super@example.com', 'changeme')" + python {toxinidir}/tests/manage.py createcachetable commands = - {posargs:python testmanage.py runserver 0.0.0.0:8020} + {posargs:python -Im {toxinidir}/tests/manage.py runserver 0.0.0.0:8020} setenv = INTERACTIVE = 1