]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
refactor migration test case
authorjonaswinkler <jonas.winkler@jpwinkler.de>
Mon, 8 Feb 2021 12:18:39 +0000 (13:18 +0100)
committerjonaswinkler <jonas.winkler@jpwinkler.de>
Mon, 8 Feb 2021 12:18:39 +0000 (13:18 +0100)
src/documents/tests/test_migration_mime_type.py [moved from src/documents/tests/test_migrations.py with 66% similarity]
src/documents/tests/utils.py

similarity index 66%
rename from src/documents/tests/test_migrations.py
rename to src/documents/tests/test_migration_mime_type.py
index ee7180c63ea7d31929d8004106d1d703f42624fe..5e825e89da1f434a53a7aa3f08bf148e587fc5d4 100644 (file)
@@ -1,52 +1,11 @@
 import os
 import shutil
-from pathlib import Path
 
-from django.apps import apps
 from django.conf import settings
-from django.db import connection
-from django.db.migrations.executor import MigrationExecutor
-from django.test import TestCase, TransactionTestCase, override_settings
+from django.test import override_settings
 
-from documents.models import Document
 from documents.parsers import get_default_file_extension
-from documents.tests.utils import DirectoriesMixin
-
-
-class TestMigrations(TransactionTestCase):
-
-    @property
-    def app(self):
-        return apps.get_containing_app_config(type(self).__module__).name
-
-    migrate_from = None
-    migrate_to = None
-
-    def setUp(self):
-        super(TestMigrations, self).setUp()
-
-        assert self.migrate_from and self.migrate_to, \
-            "TestCase '{}' must define migrate_from and migrate_to     properties".format(type(self).__name__)
-        self.migrate_from = [(self.app, self.migrate_from)]
-        self.migrate_to = [(self.app, self.migrate_to)]
-        executor = MigrationExecutor(connection)
-        old_apps = executor.loader.project_state(self.migrate_from).apps
-
-        # Reverse to the original migration
-        executor.migrate(self.migrate_from)
-
-        self.setUpBeforeMigration(old_apps)
-
-        # Run the migration to test
-        executor = MigrationExecutor(connection)
-        executor.loader.build_graph()  # reload.
-        executor.migrate(self.migrate_to)
-
-        self.apps = executor.loader.project_state(self.migrate_to).apps
-
-    def setUpBeforeMigration(self, apps):
-        pass
-
+from documents.tests.utils import DirectoriesMixin, TestMigrations
 
 STORAGE_TYPE_UNENCRYPTED = "unencrypted"
 STORAGE_TYPE_GPG = "gpg"
index ebf79f6c5c85abaeb5aaf40e3f9b1bc7d9d815de..b9be25d70d4e36af6ac5567a72394738e2b6c6ee 100644 (file)
@@ -4,7 +4,10 @@ import tempfile
 from collections import namedtuple
 from contextlib import contextmanager
 
-from django.test import override_settings
+from django.apps import apps
+from django.db import connection
+from django.db.migrations.executor import MigrationExecutor
+from django.test import override_settings, TransactionTestCase
 
 
 def setup_directories():
@@ -79,3 +82,38 @@ class DirectoriesMixin:
     def tearDown(self) -> None:
         super(DirectoriesMixin, self).tearDown()
         remove_dirs(self.dirs)
+
+
+class TestMigrations(TransactionTestCase):
+
+    @property
+    def app(self):
+        return apps.get_containing_app_config(type(self).__module__).name
+
+    migrate_from = None
+    migrate_to = None
+
+    def setUp(self):
+        super(TestMigrations, self).setUp()
+
+        assert self.migrate_from and self.migrate_to, \
+            "TestCase '{}' must define migrate_from and migrate_to     properties".format(type(self).__name__)
+        self.migrate_from = [(self.app, self.migrate_from)]
+        self.migrate_to = [(self.app, self.migrate_to)]
+        executor = MigrationExecutor(connection)
+        old_apps = executor.loader.project_state(self.migrate_from).apps
+
+        # Reverse to the original migration
+        executor.migrate(self.migrate_from)
+
+        self.setUpBeforeMigration(old_apps)
+
+        # Run the migration to test
+        executor = MigrationExecutor(connection)
+        executor.loader.build_graph()  # reload.
+        executor.migrate(self.migrate_to)
+
+        self.apps = executor.loader.project_state(self.migrate_to).apps
+
+    def setUpBeforeMigration(self, apps):
+        pass