summaryrefslogtreecommitdiff
path: root/tests/get_or_create/tests.py
diff options
context:
space:
mode:
authorKenneth <canyang@andrew.cmu.edu>2016-07-12 14:32:55 -0700
committerTim Graham <timograham@gmail.com>2016-07-12 22:09:53 -0400
commit841cb45847f9a96c108e038300006b4c45aef12a (patch)
treef7f644f8a325be12f984f860c7794030935daf35 /tests/get_or_create/tests.py
parentb84ecaa736fd5e33bd5d95ac70e288db976a53ff (diff)
Fixed #26884 -- Evaluated callables in QuerySet.update_or_create()'s defaults when updating.
Diffstat (limited to 'tests/get_or_create/tests.py')
-rw-r--r--tests/get_or_create/tests.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/tests/get_or_create/tests.py b/tests/get_or_create/tests.py
index 567ad880fa..0cbb9a1fff 100644
--- a/tests/get_or_create/tests.py
+++ b/tests/get_or_create/tests.py
@@ -404,9 +404,21 @@ class UpdateOrCreateTests(TestCase):
self.assertFalse(created)
self.assertEqual(obj.defaults, 'another testing')
- def test_update_callable_default(self):
+ def test_create_callable_default(self):
obj, created = Person.objects.update_or_create(
first_name='George', last_name='Harrison',
defaults={'birthday': lambda: date(1943, 2, 25)},
)
+ self.assertIs(created, True)
self.assertEqual(obj.birthday, date(1943, 2, 25))
+
+ def test_update_callable_default(self):
+ Person.objects.update_or_create(
+ first_name='George', last_name='Harrison', birthday=date(1942, 2, 25),
+ )
+ obj, created = Person.objects.update_or_create(
+ first_name='George',
+ defaults={'last_name': lambda: 'NotHarrison'},
+ )
+ self.assertIs(created, False)
+ self.assertEqual(obj.last_name, 'NotHarrison')