MCPcopy
hub / github.com/tortoise/tortoise-orm / run

Function run

examples/functions.py:42–90  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

40
41
42async def run():
43 await Tortoise.init(db_url="sqlite://:memory:", modules={"models": ["__main__"]})
44 await Tortoise.generate_schemas()
45 tournament = await Tournament.create(name="New Tournament", desc="great")
46 await tournament.save()
47 await Tournament.create(name="Second tournament")
48 await Tournament.create(name=" final tournament ")
49 await Event(name="Without participants", tournament_id=tournament.id).save()
50 event = Event(name="Test", tournament_id=tournament.id)
51 await event.save()
52 participants = []
53 for i in range(2):
54 team = Team(name=f"Team {(i + 1)}")
55 await team.save()
56 participants.append(team)
57 await event.participants.add(participants[0], participants[1])
58 await event.participants.add(participants[0], participants[1])
59
60 print(await Tournament.all().annotate(events_count=Count("events")).filter(events_count__gte=1))
61 print(
62 await Tournament.all()
63 .annotate(events_count_with_filter=Count("events", _filter=Q(name="New Tournament")))
64 .filter(events_count_with_filter__gte=1)
65 )
66
67 print(await Event.filter(id=event.id).first().annotate(lowest_team_id=Min("participants__id")))
68
69 print(await Tournament.all().annotate(events_count=Count("events")).order_by("events_count"))
70
71 print(await Event.all().annotate(tournament_test_id=Sum("tournament__id")).first())
72
73 print(
74 await Tournament.annotate(clean_description=Coalesce("desc", "")).filter(
75 clean_description=""
76 )
77 )
78
79 print(
80 await Tournament.annotate(trimmed_name=Trim("name")).filter(trimmed_name="final tournament")
81 )
82
83 print(
84 await Tournament.annotate(name_len=Length("name")).filter(
85 name_len__gt=len("New Tournament")
86 )
87 )
88
89 print(await Tournament.annotate(name_lo=Lower("name")).filter(name_lo="new tournament"))
90 print(await Tournament.annotate(name_lo=Upper("name")).filter(name_lo="NEW TOURNAMENT"))
91
92
93if __name__ == "__main__":

Callers 1

functions.pyFile · 0.70

Calls 15

CountClass · 0.90
QClass · 0.90
MinClass · 0.90
SumClass · 0.90
CoalesceClass · 0.90
TrimClass · 0.90
LengthClass · 0.90
LowerClass · 0.90
UpperClass · 0.90
saveMethod · 0.80
addMethod · 0.80
EventClass · 0.70

Tested by

no test coverage detected