diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/defer_regress/tests.py | 22 | ||||
| -rw-r--r-- | tests/model_fields/test_generatedfield.py | 2 |
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 |
