diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/async/test_async_related_managers.py | 52 | ||||
| -rw-r--r-- | tests/generic_relations/tests.py | 27 |
2 files changed, 78 insertions, 1 deletions
diff --git a/tests/async/test_async_related_managers.py b/tests/async/test_async_related_managers.py index dd573f5989..c475b54899 100644 --- a/tests/async/test_async_related_managers.py +++ b/tests/async/test_async_related_managers.py @@ -1,6 +1,6 @@ from django.test import TestCase -from .models import ManyToManyModel, SimpleModel +from .models import ManyToManyModel, RelatedModel, SimpleModel class AsyncRelatedManagersOperationTest(TestCase): @@ -8,6 +8,8 @@ class AsyncRelatedManagersOperationTest(TestCase): def setUpTestData(cls): cls.mtm1 = ManyToManyModel.objects.create() cls.s1 = SimpleModel.objects.create(field=0) + cls.mtm2 = ManyToManyModel.objects.create() + cls.mtm2.simples.set([cls.s1]) async def test_acreate(self): await self.mtm1.simples.acreate(field=2) @@ -54,3 +56,51 @@ class AsyncRelatedManagersOperationTest(TestCase): self.assertIs(created, True) self.assertEqual(await self.s1.relatedmodel_set.acount(), 1) self.assertEqual(new_relatedmodel.simple, self.s1) + + async def test_aadd(self): + await self.mtm1.simples.aadd(self.s1) + self.assertEqual(await self.mtm1.simples.aget(), self.s1) + + async def test_aadd_reverse(self): + r1 = await RelatedModel.objects.acreate() + await self.s1.relatedmodel_set.aadd(r1, bulk=False) + self.assertEqual(await self.s1.relatedmodel_set.aget(), r1) + + async def test_aremove(self): + self.assertEqual(await self.mtm2.simples.acount(), 1) + await self.mtm2.simples.aremove(self.s1) + self.assertEqual(await self.mtm2.simples.acount(), 0) + + async def test_aremove_reverse(self): + r1 = await RelatedModel.objects.acreate(simple=self.s1) + self.assertEqual(await self.s1.relatedmodel_set.acount(), 1) + await self.s1.relatedmodel_set.aremove(r1) + self.assertEqual(await self.s1.relatedmodel_set.acount(), 0) + + async def test_aset(self): + await self.mtm1.simples.aset([self.s1]) + self.assertEqual(await self.mtm1.simples.aget(), self.s1) + await self.mtm1.simples.aset([]) + self.assertEqual(await self.mtm1.simples.acount(), 0) + await self.mtm1.simples.aset([self.s1], clear=True) + self.assertEqual(await self.mtm1.simples.aget(), self.s1) + + async def test_aset_reverse(self): + r1 = await RelatedModel.objects.acreate() + await self.s1.relatedmodel_set.aset([r1]) + self.assertEqual(await self.s1.relatedmodel_set.aget(), r1) + await self.s1.relatedmodel_set.aset([]) + self.assertEqual(await self.s1.relatedmodel_set.acount(), 0) + await self.s1.relatedmodel_set.aset([r1], bulk=False, clear=True) + self.assertEqual(await self.s1.relatedmodel_set.aget(), r1) + + async def test_aclear(self): + self.assertEqual(await self.mtm2.simples.acount(), 1) + await self.mtm2.simples.aclear() + self.assertEqual(await self.mtm2.simples.acount(), 0) + + async def test_aclear_reverse(self): + await RelatedModel.objects.acreate(simple=self.s1) + self.assertEqual(await self.s1.relatedmodel_set.acount(), 1) + await self.s1.relatedmodel_set.aclear(bulk=False) + self.assertEqual(await self.s1.relatedmodel_set.acount(), 0) diff --git a/tests/generic_relations/tests.py b/tests/generic_relations/tests.py index e6bee11cdf..18e3578f60 100644 --- a/tests/generic_relations/tests.py +++ b/tests/generic_relations/tests.py @@ -324,6 +324,13 @@ class GenericRelationsTests(TestCase): with self.assertRaisesMessage(TypeError, msg): self.bacon.tags.add(self.lion) + async def test_aadd(self): + bacon = await Vegetable.objects.acreate(name="Bacon", is_yucky=False) + t1 = await TaggedItem.objects.acreate(content_object=self.quartz, tag="shiny") + t2 = await TaggedItem.objects.acreate(content_object=self.quartz, tag="fatty") + await bacon.tags.aadd(t1, t2, bulk=False) + self.assertEqual(await bacon.tags.acount(), 2) + def test_set(self): bacon = Vegetable.objects.create(name="Bacon", is_yucky=False) fatty = bacon.tags.create(tag="fatty") @@ -347,6 +354,16 @@ class GenericRelationsTests(TestCase): bacon.tags.set([], clear=True) self.assertSequenceEqual(bacon.tags.all(), []) + async def test_aset(self): + bacon = await Vegetable.objects.acreate(name="Bacon", is_yucky=False) + fatty = await bacon.tags.acreate(tag="fatty") + await bacon.tags.aset([fatty]) + self.assertEqual(await bacon.tags.acount(), 1) + await bacon.tags.aset([]) + self.assertEqual(await bacon.tags.acount(), 0) + await bacon.tags.aset([fatty], bulk=False, clear=True) + self.assertEqual(await bacon.tags.acount(), 1) + def test_assign(self): bacon = Vegetable.objects.create(name="Bacon", is_yucky=False) fatty = bacon.tags.create(tag="fatty") @@ -388,6 +405,10 @@ class GenericRelationsTests(TestCase): [self.hairy, self.yellow], ) + async def test_aclear(self): + await self.bacon.tags.aclear() + self.assertEqual(await self.bacon.tags.acount(), 0) + def test_remove(self): self.assertSequenceEqual( TaggedItem.objects.order_by("tag"), @@ -400,6 +421,12 @@ class GenericRelationsTests(TestCase): [self.hairy, self.salty, self.yellow], ) + async def test_aremove(self): + await self.bacon.tags.aremove(self.fatty) + self.assertEqual(await self.bacon.tags.acount(), 1) + await self.bacon.tags.aremove(self.salty) + self.assertEqual(await self.bacon.tags.acount(), 0) + def test_generic_relation_related_name_default(self): # GenericRelation isn't usable from the reverse side by default. msg = ( |
