summaryrefslogtreecommitdiff
path: root/tests/update
diff options
context:
space:
mode:
Diffstat (limited to 'tests/update')
-rw-r--r--tests/update/models.py3
-rw-r--r--tests/update/tests.py24
2 files changed, 27 insertions, 0 deletions
diff --git a/tests/update/models.py b/tests/update/models.py
index d71fc887c7..3d93915c9f 100644
--- a/tests/update/models.py
+++ b/tests/update/models.py
@@ -41,6 +41,9 @@ class Foo(models.Model):
class Bar(models.Model):
foo = models.ForeignKey(Foo, models.CASCADE, to_field="target")
+ o2o_foo = models.OneToOneField(
+ Foo, models.CASCADE, related_name="o2o_bar", null=True
+ )
m2m_foo = models.ManyToManyField(Foo, related_name="m2m_foo")
x = models.IntegerField(default=0)
diff --git a/tests/update/tests.py b/tests/update/tests.py
index fdd0631142..af5939a2ef 100644
--- a/tests/update/tests.py
+++ b/tests/update/tests.py
@@ -173,6 +173,30 @@ class AdvancedTests(TestCase):
with self.assertRaisesMessage(FieldError, msg):
Foo.objects.update(m2m_foo="whatever")
+ def test_update_reverse_fk_descriptor(self):
+ msg = (
+ "Cannot update model field <ManyToOneRel: update.bar> "
+ "(only non-relations and foreign keys permitted)."
+ )
+ with self.assertRaisesMessage(FieldError, msg):
+ Foo.objects.update(bar="whatever")
+
+ def test_update_reverse_o2o_descriptor(self):
+ msg = (
+ "Cannot update model field <OneToOneRel: update.bar> "
+ "(only non-relations and foreign keys permitted)."
+ )
+ with self.assertRaisesMessage(FieldError, msg):
+ Foo.objects.update(o2o_bar="whatever")
+
+ def test_update_reverse_mti_parent_link_descriptor(self):
+ msg = (
+ "Cannot update model field <OneToOneRel: update.uniquenumberchild> "
+ "(only non-relations and foreign keys permitted)."
+ )
+ with self.assertRaisesMessage(FieldError, msg):
+ UniqueNumber.objects.update(uniquenumberchild="whatever")
+
def test_update_transformed_field(self):
A.objects.create(x=5)
A.objects.create(x=-6)