diff options
| author | Kenneth <canyang@andrew.cmu.edu> | 2016-07-12 14:32:55 -0700 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-07-12 22:09:53 -0400 |
| commit | 841cb45847f9a96c108e038300006b4c45aef12a (patch) | |
| tree | f7f644f8a325be12f984f860c7794030935daf35 /tests/get_or_create/tests.py | |
| parent | b84ecaa736fd5e33bd5d95ac70e288db976a53ff (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.py | 14 |
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') |
