summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/defer_regress/tests.py22
-rw-r--r--tests/model_fields/test_generatedfield.py2
2 files changed, 23 insertions, 1 deletions
diff --git a/tests/defer_regress/tests.py b/tests/defer_regress/tests.py
index 1209325f21..c45a503630 100644
--- a/tests/defer_regress/tests.py
+++ b/tests/defer_regress/tests.py
@@ -366,3 +366,25 @@ class DeferDeletionSignalsTests(TestCase):
Proxy.objects.only("value").get(pk=self.item_pk).delete()
self.assertEqual(self.pre_delete_senders, [Proxy])
self.assertEqual(self.post_delete_senders, [Proxy])
+
+
+class DeferCopyInstanceTests(TestCase):
+ @classmethod
+ def setUpTestData(cls):
+ SimpleItem.objects.create(name="test", value=42)
+ cls.deferred_item = SimpleItem.objects.defer("value").first()
+ cls.deferred_item.pk = None
+ cls.deferred_item._state.adding = True
+ cls.expected_msg = (
+ "Cannot retrieve deferred field 'value' from an unsaved model."
+ )
+
+ def test_save(self):
+ with self.assertRaisesMessage(AttributeError, self.expected_msg):
+ self.deferred_item.save(force_insert=True)
+ with self.assertRaisesMessage(AttributeError, self.expected_msg):
+ self.deferred_item.save()
+
+ def test_bulk_create(self):
+ with self.assertRaisesMessage(AttributeError, self.expected_msg):
+ SimpleItem.objects.bulk_create([self.deferred_item])
diff --git a/tests/model_fields/test_generatedfield.py b/tests/model_fields/test_generatedfield.py
index 9bc96a86bb..b6a933451d 100644
--- a/tests/model_fields/test_generatedfield.py
+++ b/tests/model_fields/test_generatedfield.py
@@ -180,7 +180,7 @@ class GeneratedFieldTestMixin:
def test_unsaved_error(self):
m = self.base_model(a=1, b=2)
- msg = "Cannot read a generated field from an unsaved model."
+ msg = "Cannot retrieve deferred field 'field' from an unsaved model."
with self.assertRaisesMessage(AttributeError, msg):
m.field