Django, testy, fixtůry a posraté rekurze

Psát testy je pruda. O to větší, když po dvouhodinové přípravě ku*va-fix tur spustíte test a výstup v konzoli je plný hlášek typu:

Exception RuntimeError: 'maximum recursion depth exceeded in *' in  ignored

(za * si dosaďte cokoli vás napadne)

Kura co to je? Google neporadí (teda ne přímo), ve výstupu absolutně nedopátratelné z kama vítr vane. Tak až se vám podobná situace namane, vězte, že chyba není ve vás. To je útěcha co?

Django (či Python?) nemá rádo velké, navzájem do sebe propletené fixtury. V mém případě měl JSON něco okolo 2000 řádek s celkem 70 objekty z nejrůznějších modelů. V naprosté zoufalosti jsem tuto jednu “obřímí” fixturu rozbil na menší a hle, po recursion mrdce ni vidu, ni slechu.

No ale přeci nepodlehnu takové blbosti. Nechci mít jednu fixturu rozbitou na deset menších!

Google tentokrát pomohl. Přidejte si do testu totok a pošlete mi pusu na dobrou noc:

import sys
sys.setrecursionlimit(2000)

PS: určo záleží na systému, pod kterým pracujete. Na mém OSX sněžném kočičákovi je defaultně recursionlimit nastaven na hodnotu 1500.