async def test_prefetch_direct_relation_to_attr(self): tournament = await Tournament.create(name="tournament") await Event.create(name="First", tournament=tournament) event = await Event.first().prefetch_related( Prefetch("tournament", queryset=Tournament.all(), to_attr="to_attr_tournament") ) self.assertEqual(event.to_attr_tournament.id, tournament.id)
async def test_select_await_across_transaction_success(self): query = Tournament.all().values("id", "name") async with in_transaction(): obj = await Tournament.create(name="Test1") result = await query self.assertEqual(result, [{"id": obj.id, "name": "Test1"}]) self.assertEqual( await Tournament.all().values("id", "name"), [{"id": obj.id, "name": "Test1"}] )
async def test_select_await_across_transaction_fail(self): query = Tournament.all().values("name") try: async with in_transaction(): await Tournament.create(name="Test1") result = await query raise KeyError("moo") except KeyError: pass self.assertEqual(result, [{"name": "Test1"}]) self.assertEqual(await Tournament.all(), [])