diff options
| author | Tim Graham <timgraham@google.com> | 2013-05-24 16:36:09 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2013-05-27 10:01:14 -0400 |
| commit | 90af278203963e3e3f96e443971cd38a2dad34e4 (patch) | |
| tree | fe179729adc3855d7b22c99a39c4e80b96958db5 /tests/get_or_create | |
| parent | a64de33b791b4f1d8864dd0879b246c3cd5fa345 (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.py | 5 | ||||
| -rw-r--r-- | tests/get_or_create/tests.py | 10 |
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): |
