summaryrefslogtreecommitdiff
path: root/tests/basic
diff options
context:
space:
mode:
authorHasan Ramezani <hasan.r67@gmail.com>2019-08-17 15:30:29 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-08-19 13:28:35 +0200
commit85458e94e38c20e57939947ee515a1a53689659f (patch)
tree8011012c857d0a8f462e55c4eb20913afb19657b /tests/basic
parente9f74f53ccbf897ed69a484f35d616e1914d2c90 (diff)
downloaddjango-85458e94e38c20e57939947ee515a1a53689659f.tar.gz
Fixed #29260 -- Skipped an UPDATE when adding a model instance with primary key that has a default.
Diffstat (limited to 'tests/basic')
-rw-r--r--tests/basic/models.py6
-rw-r--r--tests/basic/tests.py10
2 files changed, 15 insertions, 1 deletions
diff --git a/tests/basic/models.py b/tests/basic/models.py
index 40de6ae7de..7b2b1aee54 100644
--- a/tests/basic/models.py
+++ b/tests/basic/models.py
@@ -3,6 +3,8 @@ Bare-bones model
This is a basic model with only two non-primary-key fields.
"""
+import uuid
+
from django.db import models
@@ -40,3 +42,7 @@ class SelfRef(models.Model):
# This method intentionally doesn't work for all cases - part
# of the test for ticket #20278
return SelfRef.objects.get(selfref=self).pk
+
+
+class PrimaryKeyWithDefault(models.Model):
+ uuid = models.UUIDField(primary_key=True, default=uuid.uuid4)
diff --git a/tests/basic/tests.py b/tests/basic/tests.py
index b29dda64f7..89f6048c96 100644
--- a/tests/basic/tests.py
+++ b/tests/basic/tests.py
@@ -10,7 +10,10 @@ from django.test import (
)
from django.utils.translation import gettext_lazy
-from .models import Article, ArticleSelectOnSave, FeaturedArticle, SelfRef
+from .models import (
+ Article, ArticleSelectOnSave, FeaturedArticle, PrimaryKeyWithDefault,
+ SelfRef,
+)
class ModelInstanceCreationTests(TestCase):
@@ -130,6 +133,11 @@ class ModelInstanceCreationTests(TestCase):
# ... but there will often be more efficient ways if that is all you need:
self.assertTrue(Article.objects.filter(id=a.id).exists())
+ def test_save_primary_with_default(self):
+ # An UPDATE attempt is skipped when a primary key has default.
+ with self.assertNumQueries(1):
+ PrimaryKeyWithDefault().save()
+
class ModelTest(TestCase):
def test_objects_attribute_is_only_available_on_the_class_itself(self):