diff options
author | tschilling <schillingt@better-simple.com> | 2023-01-30 20:39:15 -0600 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-02-14 11:50:35 +0100 |
commit | c5808470aaffda661cb911b06d5b848dd7b75467 (patch) | |
tree | fd4e8b25bf9a7fee05cd61f27c6536a57f134a16 /tests/async | |
parent | ecafcaf634fcef93f9da8cb12795273dd1c3a576 (diff) | |
download | django-c5808470aaffda661cb911b06d5b848dd7b75467.tar.gz |
Fixed #34280 -- Allowed specifying different field values for create operation in QuerySet.update_or_create().
Diffstat (limited to 'tests/async')
-rw-r--r-- | tests/async/test_async_queryset.py | 7 | ||||
-rw-r--r-- | tests/async/test_async_related_managers.py | 12 |
2 files changed, 16 insertions, 3 deletions
diff --git a/tests/async/test_async_queryset.py b/tests/async/test_async_queryset.py index 253183ea10..e83157f5bd 100644 --- a/tests/async/test_async_queryset.py +++ b/tests/async/test_async_queryset.py @@ -99,10 +99,17 @@ class AsyncQuerySetTest(TestCase): id=self.s1.id, defaults={"field": 2} ) self.assertEqual(instance, self.s1) + self.assertEqual(instance.field, 2) self.assertIs(created, False) instance, created = await SimpleModel.objects.aupdate_or_create(field=4) self.assertEqual(await SimpleModel.objects.acount(), 4) self.assertIs(created, True) + instance, created = await SimpleModel.objects.aupdate_or_create( + field=5, defaults={"field": 7}, create_defaults={"field": 6} + ) + self.assertEqual(await SimpleModel.objects.acount(), 5) + self.assertIs(created, True) + self.assertEqual(instance.field, 6) @skipUnlessDBFeature("has_bulk_insert") @async_to_sync diff --git a/tests/async/test_async_related_managers.py b/tests/async/test_async_related_managers.py index c475b54899..56f86339ef 100644 --- a/tests/async/test_async_related_managers.py +++ b/tests/async/test_async_related_managers.py @@ -44,12 +44,18 @@ class AsyncRelatedManagersOperationTest(TestCase): self.assertIs(created, True) self.assertEqual(await self.mtm1.simples.acount(), 1) self.assertEqual(new_simple.field, 2) - new_simple, created = await self.mtm1.simples.aupdate_or_create( + new_simple1, created = await self.mtm1.simples.aupdate_or_create( id=new_simple.id, defaults={"field": 3} ) self.assertIs(created, False) - self.assertEqual(await self.mtm1.simples.acount(), 1) - self.assertEqual(new_simple.field, 3) + self.assertEqual(new_simple1.field, 3) + + new_simple2, created = await self.mtm1.simples.aupdate_or_create( + field=4, defaults={"field": 6}, create_defaults={"field": 5} + ) + self.assertIs(created, True) + self.assertEqual(new_simple2.field, 5) + self.assertEqual(await self.mtm1.simples.acount(), 2) async def test_aupdate_or_create_reverse(self): new_relatedmodel, created = await self.s1.relatedmodel_set.aupdate_or_create() |