Greifvogel-Alarm berichtigt, Wartezeit von 60 auf 5 Sekunden

Das Abzeichen hing an der Seltenheit statt an der Vogelgruppe: "Ein
Greifvogel oder eine Eule vor der Linse" wurde fuer jede epische oder
legendaere Art vergeben. Von 148 Arten sind 21 Greifvoegel oder Eulen, 96
sind episch oder legendaer. Aufgefallen an einem Weissstorch.

Die Warteschlange fragte alle 60 Sekunden nach Arbeit. Das war nie eine
Hintergrundaufgabe, sondern die Zeit, die ein Mensch vor "Der Detektor
schaut sich das an …" wartet, nachdem er ein Foto geschickt hat. Jetzt 5
Sekunden; die Abfrage ist ein kurzes JSON gegen die eigene Instanz.

Drei Pruefungen fuer das Abzeichen, eine davon mit dem Storch.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
christianandClaude Opus 5 committed 2026-10-24 20:25:24 +00:00
1 parent dc7db4b603
commit 83ec6ad6c1
4 files changed
+73 -5

No files matched your search

+43
View File
@@ -181,6 +181,49 @@ class BadgeTests(TestCase):
EarnedBadge.objects.filter(badge__code="erster_gast").count(), 1
)
def test_greifvogel_alarm_braucht_einen_greifvogel(self):
"""🔴 Die Regel hing an der Seltenheit statt an der Vogelgruppe.
Das Abzeichen verspricht „ein Greifvogel oder eine Eule vor der
Linse" und wurde für jede epische Art vergeben — von 148 Arten sind
21 Greifvögel oder Eulen, 75 weitere sind episch. Aufgefallen am
24.10.2026 an einem Weißstorch.
"""
bussard = make_species(
slug="maeusebussard", german="Mäusebussard",
scientific="Buteo buteo", rarity="episch", typ="greifvogel", xp=45,
)
scoring.register(make_sighting(bussard))
self.assertTrue(
EarnedBadge.objects.filter(badge__code="greifvogel_alarm").exists()
)
def test_storch_bekommt_keinen_greifvogel_alarm(self):
storch = make_species(
slug="weissstorch", german="Weißstorch",
scientific="Ciconia ciconia", rarity="episch",
typ="schreitvogel", xp=150,
)
scoring.register(make_sighting(storch))
self.assertFalse(
EarnedBadge.objects.filter(badge__code="greifvogel_alarm").exists(),
"Ein Schreitvogel ist kein Greifvogel — auch nicht, wenn er selten ist",
)
# „Seltener Gast" hängt zu Recht an der Seltenheit und bleibt.
self.assertTrue(
EarnedBadge.objects.filter(badge__code="seltener_gast").exists()
)
def test_eule_zaehlt_mit(self):
kauz = make_species(
slug="waldkauz", german="Waldkauz", scientific="Strix aluco",
rarity="selten", typ="eule", xp=40,
)
scoring.register(make_sighting(kauz))
self.assertTrue(
EarnedBadge.objects.filter(badge__code="greifvogel_alarm").exists()
)
def test_rare_species_earns_rare_guest(self):
gimpel = make_species(
slug="gimpel", german="Gimpel", scientific="Pyrrhula pyrrhula",