Commit 47b7f601 authored by Carl Meyer's avatar Carl Meyer
Browse files

Fixed #23872 -- Removed sensitivity of migrations tests to CWD.

parent 4932a7b8
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
from django.test import TransactionTestCase
import os

from django.db import connection
from django.test import TransactionTestCase
from django.utils._os import upath


class MigrationTestBase(TransactionTestCase):
@@ -8,6 +11,7 @@ class MigrationTestBase(TransactionTestCase):
    """

    available_apps = ["migrations"]
    test_dir = os.path.abspath(os.path.dirname(upath(__file__)))

    def get_table_description(self, table):
        with connection.cursor() as cursor:
+14 −14
Original line number Diff line number Diff line
@@ -11,7 +11,6 @@ from django.core.management import call_command, CommandError
from django.db.migrations import questioner
from django.test import override_settings
from django.utils import six
from django.utils._os import upath
from django.utils.encoding import force_text

from .models import UnicodeModel, UnserializableModel
@@ -144,8 +143,6 @@ class MakeMigrationsTests(MigrationTestBase):

    def setUp(self):
        MakeMigrationsTests.creation_counter += 1
        self._cwd = os.getcwd()
        self.test_dir = os.path.abspath(os.path.dirname(upath(__file__)))
        self.migration_dir = os.path.join(self.test_dir, 'migrations_%d' % self.creation_counter)
        self.migration_pkg = "migrations.migrations_%d" % self.creation_counter
        self._old_models = apps.app_configs['migrations'].models.copy()
@@ -155,7 +152,9 @@ class MakeMigrationsTests(MigrationTestBase):
        apps.all_models['migrations'] = self._old_models
        apps.clear_cache()

        _cwd = os.getcwd()
        os.chdir(self.test_dir)
        try:
            try:
                self._rmrf(self.migration_dir)
            except OSError:
@@ -166,8 +165,8 @@ class MakeMigrationsTests(MigrationTestBase):
                           "test_migrations_path_doesnt_exist"))
            except OSError:
                pass

        os.chdir(self._cwd)
        finally:
            os.chdir(_cwd)

    def _rmrf(self, dname):
        if os.path.commonprefix([self.test_dir, os.path.abspath(dname)]) != self.test_dir:
@@ -550,7 +549,8 @@ class SquashMigrationsTest(MigrationTestBase):
    Tests running the squashmigrations command.
    """

    path = "migrations/test_migrations/0001_squashed_0002_second.py"
    path = "test_migrations/0001_squashed_0002_second.py"
    path = os.path.join(MigrationTestBase.test_dir, path)

    def tearDown(self):
        if os.path.exists(self.path):