예제 #1
0
 async def test_prefetch_unknown_field(self):
     with self.assertRaises(OperationalError):
         tournament = await Tournament.create(name="tournament")
         await Event.create(name="First", tournament=tournament)
         await Event.create(name="Second", tournament=tournament)
         await Tournament.all().prefetch_related(
             Prefetch("events1",
                      queryset=Event.filter(name="First"))).first()
예제 #2
0
 async def test_prefetch_object(self):
     tournament = await Tournament.create(name="tournament")
     await Event.create(name="First", tournament=tournament)
     await Event.create(name="Second", tournament=tournament)
     tournament_with_filtered = (await Tournament.all().prefetch_related(
         Prefetch("events", queryset=Event.filter(name="First"))).first())
     tournament = await Tournament.first().prefetch_related("events")
     self.assertEqual(len(tournament_with_filtered.events), 1)
     self.assertEqual(len(tournament.events), 2)
예제 #3
0
 async def test_prefetch_nested(self):
     tournament = await Tournament.create(name="tournament")
     event = await Event.create(name="First", tournament=tournament)
     await Event.create(name="Second", tournament=tournament)
     team = await Team.create(name="1")
     team_second = await Team.create(name="2")
     await event.participants.add(team, team_second)
     fetched_tournaments = (await Tournament.all().prefetch_related(
         Prefetch("events", queryset=Event.filter(name="First")),
         Prefetch("events__participants", queryset=Team.filter(name="1")),
     ).first())
     self.assertEqual(len(fetched_tournaments.events[0].participants), 1)