summaryrefslogtreecommitdiff
path: root/tests/get_or_create
diff options
context:
space:
mode:
Diffstat (limited to 'tests/get_or_create')
-rw-r--r--tests/get_or_create/models.py5
-rw-r--r--tests/get_or_create/tests.py10
2 files changed, 14 insertions, 1 deletions
diff --git a/tests/get_or_create/models.py b/tests/get_or_create/models.py
index 84c8fda968..1a85de2e74 100644
--- a/tests/get_or_create/models.py
+++ b/tests/get_or_create/models.py
@@ -21,6 +21,11 @@ class Person(models.Model):
def __str__(self):
return '%s %s' % (self.first_name, self.last_name)
+
+class DefaultPerson(models.Model):
+ first_name = models.CharField(max_length=100, default="Anonymous")
+
+
class ManualPrimaryKeyTest(models.Model):
id = models.IntegerField(primary_key=True)
data = models.CharField(max_length=100)
diff --git a/tests/get_or_create/tests.py b/tests/get_or_create/tests.py
index 48f2a067c1..36c248b169 100644
--- a/tests/get_or_create/tests.py
+++ b/tests/get_or_create/tests.py
@@ -8,7 +8,7 @@ from django.db import IntegrityError, DatabaseError
from django.utils.encoding import DjangoUnicodeDecodeError
from django.test import TestCase, TransactionTestCase
-from .models import Person, ManualPrimaryKeyTest, Profile, Tag, Thing
+from .models import DefaultPerson, Person, ManualPrimaryKeyTest, Profile, Tag, Thing
class GetOrCreateTests(TestCase):
@@ -83,6 +83,14 @@ class GetOrCreateTests(TestCase):
else:
self.skipTest("This backend accepts broken utf-8.")
+ def test_get_or_create_empty(self):
+ # Regression test for #16137: get_or_create does not require kwargs.
+ try:
+ DefaultPerson.objects.get_or_create()
+ except AssertionError:
+ self.fail("If all the attributes on a model have defaults, we "
+ "shouldn't need to pass any arguments.")
+
class GetOrCreateTransactionTests(TransactionTestCase):