diff options
| author | Simon Charette <charette.s@gmail.com> | 2017-02-02 22:09:12 -0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-07-11 10:49:50 -0400 |
| commit | ad82900ad94ed4bbad050b9993373dafbe66b610 (patch) | |
| tree | b7d5fd47ddf1fbe19b2407daedb520151422e17b /tests | |
| parent | a97845a823c86b1d6e65af70fbce64e6e747e081 (diff) | |
Fixed #26720 -- Prevented invalid CreateModel optimizations of related fields.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/migrations/test_optimizer.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/migrations/test_optimizer.py b/tests/migrations/test_optimizer.py index 6c1c5f5c6b..973be67c80 100644 --- a/tests/migrations/test_optimizer.py +++ b/tests/migrations/test_optimizer.py @@ -270,6 +270,35 @@ class OptimizerTests(SimpleTestCase): app_label="testapp", ) + # This could be optimized a bit more but it generates a valid set of + # operations. + self.assertOptimizesTo( + [ + migrations.CreateModel('Book', [('name', models.CharField(max_length=255))]), + migrations.CreateModel('Person', [('name', models.CharField(max_length=255))]), + migrations.AddField('book', 'author', models.ForeignKey('test_app.Person', models.CASCADE)), + migrations.CreateModel('Review', [('book', models.ForeignKey('test_app.Book', models.CASCADE))]), + migrations.CreateModel('Reviewer', [('name', models.CharField(max_length=255))]), + migrations.AddField('review', 'reviewer', models.ForeignKey('test_app.Reviewer', models.CASCADE)), + migrations.RemoveField('book', 'author'), + migrations.DeleteModel('Person'), + ], + [ + migrations.CreateModel('Person', [('name', models.CharField(max_length=255))]), + migrations.CreateModel('Book', [ + ('name', models.CharField(max_length=255)), + ('author', models.ForeignKey('test_app.Person', models.CASCADE)), + ]), + migrations.CreateModel('Reviewer', [('name', models.CharField(max_length=255))]), + migrations.CreateModel('Review', [ + ('book', models.ForeignKey('test_app.Book', models.CASCADE)), + ('reviewer', models.ForeignKey('test_app.Reviewer', models.CASCADE)), + ]), + migrations.RemoveField('book', 'author'), + migrations.DeleteModel('Person'), + ], + ) + def test_create_model_add_field(self): """ AddField should optimize into CreateModel. |
