diff options
| author | Markus Holtermann <info@markusholtermann.eu> | 2015-01-07 21:14:25 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-01-07 17:33:04 -0500 |
| commit | 1f03d2d924ba90e83dc9d8c93438bf5ee2f17ccd (patch) | |
| tree | 606b0ead265f0878e650918375b48d3709fb9811 /tests | |
| parent | 127f9e073d83904defd4bde4eaa4491f3306ca25 (diff) | |
Refs #23822 -- Made MigrationOptimizer aware of model managers
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/migrations/models.py | 4 | ||||
| -rw-r--r-- | tests/migrations/test_optimizer.py | 111 |
2 files changed, 93 insertions, 22 deletions
diff --git a/tests/migrations/models.py b/tests/migrations/models.py index 1e6ab07f75..6f02e8088e 100644 --- a/tests/migrations/models.py +++ b/tests/migrations/models.py @@ -52,6 +52,10 @@ class UnmigratedModel(models.Model): pass +class EmptyManager(models.Manager): + use_in_migrations = True + + class FoodQuerySet(models.query.QuerySet): pass diff --git a/tests/migrations/test_optimizer.py b/tests/migrations/test_optimizer.py index dba07c2878..cb89a85c2d 100644 --- a/tests/migrations/test_optimizer.py +++ b/tests/migrations/test_optimizer.py @@ -5,6 +5,8 @@ from django.db.migrations.optimizer import MigrationOptimizer from django.db import migrations from django.db import models +from .models import CustomModelBase, EmptyManager + class OptimizerTests(TestCase): """ @@ -55,13 +57,26 @@ class OptimizerTests(TestCase): """ CreateModel should absorb RenameModels. """ + managers = [('objects', EmptyManager())] self.assertOptimizesTo( [ - migrations.CreateModel("Foo", [("name", models.CharField(max_length=255))]), + migrations.CreateModel( + name="Foo", + fields=[("name", models.CharField(max_length=255))], + options={'verbose_name': 'Foo'}, + bases=(CustomModelBase), + managers=managers, + ), migrations.RenameModel("Foo", "Bar"), ], [ - migrations.CreateModel("Bar", [("name", models.CharField(max_length=255))]), + migrations.CreateModel( + "Bar", + [("name", models.CharField(max_length=255))], + options={'verbose_name': 'Foo'}, + bases=(CustomModelBase), + managers=managers, + ) ], ) @@ -159,16 +174,29 @@ class OptimizerTests(TestCase): """ AddField should optimize into CreateModel. """ + managers = [('objects', EmptyManager())] self.assertOptimizesTo( [ - migrations.CreateModel("Foo", [("name", models.CharField(max_length=255))]), + migrations.CreateModel( + name="Foo", + fields=[("name", models.CharField(max_length=255))], + options={'verbose_name': 'Foo'}, + bases=(CustomModelBase), + managers=managers, + ), migrations.AddField("Foo", "age", models.IntegerField()), ], [ - migrations.CreateModel("Foo", [ - ("name", models.CharField(max_length=255)), - ("age", models.IntegerField()), - ]), + migrations.CreateModel( + name="Foo", + fields=[ + ("name", models.CharField(max_length=255)), + ("age", models.IntegerField()), + ], + options={'verbose_name': 'Foo'}, + bases=(CustomModelBase), + managers=managers, + ), ], ) @@ -214,15 +242,28 @@ class OptimizerTests(TestCase): """ AlterField should optimize into CreateModel. """ + managers = [('objects', EmptyManager())] self.assertOptimizesTo( [ - migrations.CreateModel("Foo", [("name", models.CharField(max_length=255))]), + migrations.CreateModel( + name="Foo", + fields=[("name", models.CharField(max_length=255))], + options={'verbose_name': 'Foo'}, + bases=(CustomModelBase), + managers=managers, + ), migrations.AlterField("Foo", "name", models.IntegerField()), ], [ - migrations.CreateModel("Foo", [ - ("name", models.IntegerField()), - ]), + migrations.CreateModel( + name="Foo", + fields=[ + ("name", models.IntegerField()), + ], + options={'verbose_name': 'Foo'}, + bases=(CustomModelBase), + managers=managers, + ), ], ) @@ -230,15 +271,28 @@ class OptimizerTests(TestCase): """ RenameField should optimize into CreateModel. """ + managers = [('objects', EmptyManager())] self.assertOptimizesTo( [ - migrations.CreateModel("Foo", [("name", models.CharField(max_length=255))]), + migrations.CreateModel( + name="Foo", + fields=[("name", models.CharField(max_length=255))], + options={'verbose_name': 'Foo'}, + bases=(CustomModelBase), + managers=managers, + ), migrations.RenameField("Foo", "name", "title"), ], [ - migrations.CreateModel("Foo", [ - ("title", models.CharField(max_length=255)), - ]), + migrations.CreateModel( + name="Foo", + fields=[ + ("title", models.CharField(max_length=255)), + ], + options={'verbose_name': 'Foo'}, + bases=(CustomModelBase), + managers=managers, + ), ], ) @@ -277,18 +331,31 @@ class OptimizerTests(TestCase): """ RemoveField should optimize into CreateModel. """ + managers = [('objects', EmptyManager())] self.assertOptimizesTo( [ - migrations.CreateModel("Foo", [ - ("name", models.CharField(max_length=255)), - ("age", models.IntegerField()), - ]), + migrations.CreateModel( + name="Foo", + fields=[ + ("name", models.CharField(max_length=255)), + ("age", models.IntegerField()), + ], + options={'verbose_name': 'Foo'}, + bases=(CustomModelBase), + managers=managers, + ), migrations.RemoveField("Foo", "age"), ], [ - migrations.CreateModel("Foo", [ - ("name", models.CharField(max_length=255)), - ]), + migrations.CreateModel( + name="Foo", + fields=[ + ("name", models.CharField(max_length=255)), + ], + options={'verbose_name': 'Foo'}, + bases=(CustomModelBase), + managers=managers, + ), ], ) |
