diff options
| author | Jarek Glowacki <jarekwg@gmail.com> | 2016-08-05 09:37:42 +1000 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-08-05 18:11:38 -0400 |
| commit | 1e16e141ac7100fe14c6f8837b3871fde13ca9be (patch) | |
| tree | 493cc4c55a6be533ee27d6dfedbdd2234fcc9156 /tests | |
| parent | bfd8f16fbdae1aeaa4d5076721238c041d582e82 (diff) | |
[1.10.x] Fixed #27004 -- Made migrations consistency check ignore unapplied squashed migrations.
Backport of d117567c7d65c3c28858c4dfc771483b182075e4 from master
Diffstat (limited to 'tests')
6 files changed, 52 insertions, 0 deletions
diff --git a/tests/migrations/test_loader.py b/tests/migrations/test_loader.py index 0b014f7d57..c97cddb913 100644 --- a/tests/migrations/test_loader.py +++ b/tests/migrations/test_loader.py @@ -381,6 +381,23 @@ class LoaderTests(TestCase): with self.assertRaisesMessage(InconsistentMigrationHistory, msg): loader.check_consistent_history(connection) + @override_settings( + MIGRATION_MODULES={'migrations': 'migrations.test_migrations_squashed_extra'}, + INSTALLED_APPS=['migrations'], + ) + def test_check_consistent_history_squashed(self): + """ + MigrationLoader.check_consistent_history() should ignore unapplied + squashed migrations that have all of their `replaces` applied. + """ + loader = MigrationLoader(connection=None) + recorder = MigrationRecorder(connection) + recorder.record_applied('migrations', '0001_initial') + recorder.record_applied('migrations', '0002_second') + loader.check_consistent_history(connection) + recorder.record_applied('migrations', '0003_third') + loader.check_consistent_history(connection) + @override_settings(MIGRATION_MODULES={ "app1": "migrations.test_migrations_squashed_ref_squashed.app1", "app2": "migrations.test_migrations_squashed_ref_squashed.app2", diff --git a/tests/migrations/test_migrations_squashed_extra/0001_initial.py b/tests/migrations/test_migrations_squashed_extra/0001_initial.py new file mode 100644 index 0000000000..9a330e1067 --- /dev/null +++ b/tests/migrations/test_migrations_squashed_extra/0001_initial.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + pass diff --git a/tests/migrations/test_migrations_squashed_extra/0001_squashed_0002.py b/tests/migrations/test_migrations_squashed_extra/0001_squashed_0002.py new file mode 100644 index 0000000000..79beebea1c --- /dev/null +++ b/tests/migrations/test_migrations_squashed_extra/0001_squashed_0002.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + replaces = [ + ("migrations", "0001_initial"), + ("migrations", "0002_second"), + ] diff --git a/tests/migrations/test_migrations_squashed_extra/0002_second.py b/tests/migrations/test_migrations_squashed_extra/0002_second.py new file mode 100644 index 0000000000..4b892a7e8b --- /dev/null +++ b/tests/migrations/test_migrations_squashed_extra/0002_second.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [("migrations", "0001_initial")] diff --git a/tests/migrations/test_migrations_squashed_extra/0003_third.py b/tests/migrations/test_migrations_squashed_extra/0003_third.py new file mode 100644 index 0000000000..b69ae8883b --- /dev/null +++ b/tests/migrations/test_migrations_squashed_extra/0003_third.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [("migrations", "0002_second")] diff --git a/tests/migrations/test_migrations_squashed_extra/__init__.py b/tests/migrations/test_migrations_squashed_extra/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/migrations/test_migrations_squashed_extra/__init__.py |
