summaryrefslogtreecommitdiff
path: root/tests/model_fields
diff options
context:
space:
mode:
authorAnssi Kääriäinen <anssi.kaariainen@thl.fi>2015-01-28 13:40:48 +0200
committerTim Graham <timograham@gmail.com>2015-02-03 09:25:55 -0500
commit43b0131fb5724cb92716eedfe35a6b2b4d84e1e5 (patch)
treeb43548de46f19fd075f6eadcad78facabef4f255 /tests/model_fields
parent9ffe013caa9360183cdb948b8e03c9c2a0da5417 (diff)
[1.8.x] Fixed #23617 -- Added get_pk_value_on_save()
The method is mainly intended for use with UUIDField. For UUIDField we want to call the field's default even when primary key value is explicitly set to None to match the behavior of AutoField. Thanks to Marc Tamlyn and Tim Graham for review. Backport of 8adc59038cdc6ce4f9170e4de2d716d940e136b3 from master
Diffstat (limited to 'tests/model_fields')
-rw-r--r--tests/model_fields/test_uuid.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/model_fields/test_uuid.py b/tests/model_fields/test_uuid.py
index b5bc37a48d..13fe245be3 100644
--- a/tests/model_fields/test_uuid.py
+++ b/tests/model_fields/test_uuid.py
@@ -87,3 +87,20 @@ class TestAsPrimaryKey(TestCase):
PrimaryKeyUUIDModel.objects.create()
loaded = PrimaryKeyUUIDModel.objects.get()
self.assertIsInstance(loaded.pk, uuid.UUID)
+
+ def test_uuid_pk_on_save(self):
+ saved = PrimaryKeyUUIDModel.objects.create(id=None)
+ loaded = PrimaryKeyUUIDModel.objects.get()
+ self.assertIsNotNone(loaded.id, None)
+ self.assertEqual(loaded.id, saved.id)
+
+ def test_uuid_pk_on_bulk_create(self):
+ u1 = PrimaryKeyUUIDModel()
+ u2 = PrimaryKeyUUIDModel(id=None)
+ PrimaryKeyUUIDModel.objects.bulk_create([u1, u2])
+ # Check that the two objects were correctly created.
+ u1_found = PrimaryKeyUUIDModel.objects.filter(id=u1.id).exists()
+ u2_found = PrimaryKeyUUIDModel.objects.exclude(id=u1.id).exists()
+ self.assertTrue(u1_found)
+ self.assertTrue(u2_found)
+ self.assertEqual(PrimaryKeyUUIDModel.objects.count(), 2)