diff options
| author | Simon Charette <charette.s@gmail.com> | 2019-12-11 22:34:28 -0500 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-12-30 08:30:44 +0100 |
| commit | 7db4ab84394f5ffa588d5d968f6b76178740fb51 (patch) | |
| tree | 7205b47b298f0bcf8b1a967bc3c8434bc3f78d8f /tests | |
| parent | 0f8041abd5bf0977d28b676445d35a81c6b7b5de (diff) | |
[3.0.x] Fixed #31071 -- Disabled insert optimization for primary keys with defaults when loading fixtures.
Model.save_base() is called directly when loading fixtures and assumes
existing rows will be updated. Branching of "raw" allows to maintain
the optimization introduced in #29260 while supporting this edge case.
Regression in 85458e94e38c20e57939947ee515a1a53689659f.
Thanks Reupen Shah for the report.
Backport of 5779cc938a34eb96815c7a40ded2c8f6c8087c58 from master
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/serializers/models/data.py | 6 | ||||
| -rw-r--r-- | tests/serializers/test_data.py | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/tests/serializers/models/data.py b/tests/serializers/models/data.py index 533ccf6830..3a55b89c9b 100644 --- a/tests/serializers/models/data.py +++ b/tests/serializers/models/data.py @@ -4,6 +4,8 @@ The following classes are for testing basic data marshalling, including NULL values, where allowed. The basic idea is to have a model for each Django data type. """ +import uuid + from django.contrib.contenttypes.fields import ( GenericForeignKey, GenericRelation, ) @@ -253,6 +255,10 @@ class UUIDData(models.Model): data = models.UUIDField(primary_key=True) +class UUIDDefaultData(models.Model): + data = models.UUIDField(primary_key=True, default=uuid.uuid4) + + class FKToUUID(models.Model): data = models.ForeignKey(UUIDData, models.CASCADE) diff --git a/tests/serializers/test_data.py b/tests/serializers/test_data.py index 9f0e311d62..0fcde35bd3 100644 --- a/tests/serializers/test_data.py +++ b/tests/serializers/test_data.py @@ -26,7 +26,7 @@ from .models import ( ModifyingSaveData, NullBooleanData, O2OData, PositiveIntegerData, PositiveIntegerPKData, PositiveSmallIntegerData, PositiveSmallIntegerPKData, SlugData, SlugPKData, SmallData, SmallPKData, - Tag, TextData, TimeData, UniqueAnchor, UUIDData, + Tag, TextData, TimeData, UniqueAnchor, UUIDData, UUIDDefaultData, ) from .tests import register_tests @@ -349,6 +349,7 @@ The end."""), # (pk_obj, 790, XMLPKData, "<foo></foo>"), (pk_obj, 791, UUIDData, uuid_obj), (fk_obj, 792, FKToUUID, uuid_obj), + (pk_obj, 793, UUIDDefaultData, uuid_obj), (data_obj, 800, AutoNowDateTimeData, datetime.datetime(2006, 6, 16, 10, 42, 37)), (data_obj, 810, ModifyingSaveData, 42), |
