summaryrefslogtreecommitdiff
path: root/tests/get_or_create
diff options
context:
space:
mode:
authorTim Graham <timgraham@google.com>2013-05-24 16:36:09 -0400
committerTim Graham <timograham@gmail.com>2013-05-27 10:01:14 -0400
commit90af278203963e3e3f96e443971cd38a2dad34e4 (patch)
treefe179729adc3855d7b22c99a39c4e80b96958db5 /tests/get_or_create
parenta64de33b791b4f1d8864dd0879b246c3cd5fa345 (diff)
Fixed #16137 - Removed kwargs requirement for QuerySet.get_or_create
Thanks wilfred@, poirier, and charettes for work on the patch.
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):