diff options
Diffstat (limited to 'tests/schema/tests.py')
| -rw-r--r-- | tests/schema/tests.py | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/tests/schema/tests.py b/tests/schema/tests.py index 567ee768a5..1852b70757 100644 --- a/tests/schema/tests.py +++ b/tests/schema/tests.py @@ -7,6 +7,7 @@ from django.db import ( DatabaseError, IntegrityError, OperationalError, connection, ) from django.db.models import Model +from django.db.models.deletion import CASCADE from django.db.models.fields import ( AutoField, BigIntegerField, BinaryField, BooleanField, CharField, DateField, DateTimeField, IntegerField, PositiveIntegerField, SlugField, @@ -161,7 +162,7 @@ class SchemaTests(TransactionTestCase): ) # Repoint the FK constraint old_field = Book._meta.get_field("author") - new_field = ForeignKey(Tag) + new_field = ForeignKey(Tag, CASCADE) new_field.set_attributes_from_name("author") with connection.schema_editor() as editor: editor.alter_field(Book, old_field, new_field, strict=True) @@ -192,7 +193,7 @@ class SchemaTests(TransactionTestCase): if details['columns'] == ["author_id"] and details['foreign_key']: self.fail("FK constraint for author_id found") # Make a db_constraint=False FK - new_field = ForeignKey(Tag, db_constraint=False) + new_field = ForeignKey(Tag, CASCADE, db_constraint=False) new_field.set_attributes_from_name("tag") with connection.schema_editor() as editor: editor.add_field(Author, new_field) @@ -202,7 +203,7 @@ class SchemaTests(TransactionTestCase): if details['columns'] == ["tag_id"] and details['foreign_key']: self.fail("FK constraint for tag_id found") # Alter to one with a constraint - new_field2 = ForeignKey(Tag) + new_field2 = ForeignKey(Tag, CASCADE) new_field2.set_attributes_from_name("tag") with connection.schema_editor() as editor: editor.alter_field(Author, new_field, new_field2, strict=True) @@ -215,7 +216,7 @@ class SchemaTests(TransactionTestCase): else: self.fail("No FK constraint for tag_id found") # Alter to one without a constraint again - new_field2 = ForeignKey(Tag) + new_field2 = ForeignKey(Tag, CASCADE) new_field2.set_attributes_from_name("tag") with connection.schema_editor() as editor: editor.alter_field(Author, new_field2, new_field, strict=True) @@ -632,7 +633,7 @@ class SchemaTests(TransactionTestCase): self.fail("No FK constraint for author_id found") # Alter the FK old_field = Book._meta.get_field("author") - new_field = ForeignKey(Author, editable=False) + new_field = ForeignKey(Author, CASCADE, editable=False) new_field.set_attributes_from_name("author") with connection.schema_editor() as editor: editor.alter_field(Book, old_field, new_field, strict=True) @@ -674,7 +675,7 @@ class SchemaTests(TransactionTestCase): if details['foreign_key']: self.fail('Found an unexpected FK constraint to %s' % details['columns']) old_field = LocalBook._meta.get_field("author") - new_field = ForeignKey(Author) + new_field = ForeignKey(Author, CASCADE) new_field.set_attributes_from_name("author") with connection.schema_editor() as editor: editor.alter_field(LocalBook, old_field, new_field, strict=True) @@ -715,7 +716,7 @@ class SchemaTests(TransactionTestCase): self.assertTrue(author_is_fk, "No FK constraint for author_id found") # Alter the OneToOneField to ForeignKey old_field = BookWithO2O._meta.get_field("author") - new_field = ForeignKey(Author) + new_field = ForeignKey(Author, CASCADE) new_field.set_attributes_from_name("author") with connection.schema_editor() as editor: editor.alter_field(BookWithO2O, old_field, new_field, strict=True) @@ -761,7 +762,7 @@ class SchemaTests(TransactionTestCase): self.assertTrue(author_is_fk, "No FK constraint for author_id found") # Alter the ForeignKey to OneToOneField old_field = Book._meta.get_field("author") - new_field = OneToOneField(Author) + new_field = OneToOneField(Author, CASCADE) new_field.set_attributes_from_name("author") with connection.schema_editor() as editor: editor.alter_field(Book, old_field, new_field, strict=True) @@ -901,7 +902,7 @@ class SchemaTests(TransactionTestCase): Tests M2M fields on models during creation """ class LocalBookWithM2M(Model): - author = ForeignKey(Author) + author = ForeignKey(Author, CASCADE) title = CharField(max_length=100, db_index=True) pub_date = DateTimeField() tags = M2MFieldClass("TagM2MTest", related_name="books") @@ -937,8 +938,8 @@ class SchemaTests(TransactionTestCase): Tests M2M fields on models during creation with through models """ class LocalTagThrough(Model): - book = ForeignKey("schema.LocalBookWithM2MThrough") - tag = ForeignKey("schema.TagM2MTest") + book = ForeignKey("schema.LocalBookWithM2MThrough", CASCADE) + tag = ForeignKey("schema.TagM2MTest", CASCADE) class Meta: app_label = 'schema' @@ -1026,8 +1027,8 @@ class SchemaTests(TransactionTestCase): Tests altering M2Ms with explicit through models (should no-op) """ class LocalAuthorTag(Model): - author = ForeignKey("schema.LocalAuthorWithM2MThrough") - tag = ForeignKey("schema.TagM2MTest") + author = ForeignKey("schema.LocalAuthorWithM2MThrough", CASCADE) + tag = ForeignKey("schema.TagM2MTest", CASCADE) class Meta: app_label = 'schema' @@ -1073,7 +1074,7 @@ class SchemaTests(TransactionTestCase): Tests repointing M2M fields """ class LocalBookWithM2M(Model): - author = ForeignKey(Author) + author = ForeignKey(Author, CASCADE) title = CharField(max_length=100, db_index=True) pub_date = DateTimeField() tags = M2MFieldClass("TagM2MTest", related_name="books") @@ -1264,7 +1265,7 @@ class SchemaTests(TransactionTestCase): with connection.schema_editor() as editor: editor.create_model(Author) editor.create_model(BookWithoutAuthor) - new_field = ForeignKey(Author) + new_field = ForeignKey(Author, CASCADE) new_field.set_attributes_from_name('author') editor.add_field(BookWithoutAuthor, new_field) # Ensure the fields aren't unique to begin with @@ -1502,7 +1503,7 @@ class SchemaTests(TransactionTestCase): editor.create_model(AuthorWithEvenLongerName) editor.create_model(BookWithLongName) # Add a second FK, this would fail due to long ref name before the fix - new_field = ForeignKey(AuthorWithEvenLongerName, related_name="something") + new_field = ForeignKey(AuthorWithEvenLongerName, CASCADE, related_name="something") new_field.set_attributes_from_name("author_other_really_long_named_i_mean_so_long_fk") with connection.schema_editor() as editor: editor.add_field(BookWithLongName, new_field) @@ -1511,7 +1512,7 @@ class SchemaTests(TransactionTestCase): with connection.schema_editor() as editor: editor.create_model(BookForeignObj) - new_field = ForeignObject(Author, from_fields=['author_id'], to_fields=['id']) + new_field = ForeignObject(Author, on_delete=CASCADE, from_fields=['author_id'], to_fields=['id']) new_field.set_attributes_from_name('author') with connection.schema_editor() as editor: editor.add_field(BookForeignObj, new_field) @@ -1587,7 +1588,7 @@ class SchemaTests(TransactionTestCase): "to_column": editor.quote_name(model._meta.auto_field.column), } ) - editor.alter_field(model, get_field(Author, field_class=ForeignKey), field) + editor.alter_field(model, get_field(Author, CASCADE, field_class=ForeignKey), field) def test_add_field_use_effective_default(self): """ |
