summaryrefslogtreecommitdiff
path: root/tests/async
diff options
context:
space:
mode:
authortschilling <schillingt@better-simple.com>2023-01-30 20:39:15 -0600
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-02-14 11:50:35 +0100
commitc5808470aaffda661cb911b06d5b848dd7b75467 (patch)
treefd4e8b25bf9a7fee05cd61f27c6536a57f134a16 /tests/async
parentecafcaf634fcef93f9da8cb12795273dd1c3a576 (diff)
downloaddjango-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.py7
-rw-r--r--tests/async/test_async_related_managers.py12
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()