Ticket #24282: patch_failing_test

File patch_failing_test, 2.6 KB (added by Jeff Singer, 5 years ago)

Failing Test

Line 
1diff --git a/tests/migrations/test_operations.py b/tests/migrations/test_operations.py
2index d8a042d..f4020e7 100644
3--- a/tests/migrations/test_operations.py
4+++ b/tests/migrations/test_operations.py
5@@ -1659,6 +1659,57 @@ class OperationTests(OperationTestBase):
6         self.assertEqual(definition[1], [])
7         self.assertEqual(sorted(definition[2]), ["atomic", "code"])
8 
9+    def test_run_python_related_assignment(self):
10+
11+        def inner_method(models, schema_editor):
12+            Author = models.get_model("test_authors", "Author")
13+            Book = models.get_model("test_books", "Book")
14+            author = Author.objects.create(name="Hemingway")
15+            book = Book("Old Man and The Sea")
16+            book.author = author
17+
18+        create_author = migrations.CreateModel(
19+            "Author",
20+            [
21+                ("id", models.AutoField(primary_key=True)),
22+                ("name", models.CharField(max_length=100)),
23+            ],
24+            options={},
25+        )
26+        create_book = migrations.CreateModel(
27+            "Book",
28+            [
29+                ("id", models.AutoField(primary_key=True)),
30+                ("title", models.CharField(max_length=100)),
31+                ("author", models.ForeignKey("test_authors.Author"))
32+            ],
33+            options={},
34+        )
35+        add_hometown = migrations.AddField(
36+            "Author",
37+            "hometown",
38+            models.CharField(max_length=100),
39+        )
40+        create_old_man = migrations.RunPython(
41+            inner_method, inner_method
42+        )
43+
44+        project_state = ProjectState()
45+        with connection.schema_editor() as editor:
46+            new_state = project_state.clone()
47+            create_author.state_forwards("test_authors", new_state)
48+            create_author.database_forwards("test_authors", editor, project_state, new_state)
49+            project_state, new_state = new_state, new_state.clone()
50+            create_book.state_forwards("test_books", new_state)
51+            create_book.database_forwards("test_books", editor, project_state, new_state)
52+            project_state, new_state = new_state, new_state.clone()
53+            add_hometown.state_forwards("test_authors", new_state)
54+            add_hometown.database_forwards("test_authors", editor, project_state, new_state)
55+            project_state, new_state = new_state, new_state.clone()
56+            create_old_man.state_forwards("test_books", new_state)
57+            create_old_man.database_forwards("test_books", editor, project_state, new_state)
58+
59+
60     def test_run_python_noop(self):
61         """
62         #24098 - Tests no-op RunPython operations.
Back to Top