Browse Source

Testdata: Generujeme jeden článek

middleware_test
Pavel 'LEdoian' Turinsky 4 years ago
parent
commit
443f05bddc
  1. 73
      seminar/testutils.py

73
seminar/testutils.py

@ -681,6 +681,77 @@ def otec_syn(otec, syn):
syn.save()
otec.save()
def gen_clanek(rnd):
logger.info("Generuji článek do čísla 22.2")
clanek = m.Clanek.objects.create(
nazev="Článek o Lorem ipsum",
nadproblem=None,
stav='vyreseny',
zamereni=['I'],
garant=rnd.choice(m.Organizator.objects.all()),
kod='cl',
)
clanek.save()
reseni = m.Reseni.objects.create(
zverejneno=True,
)
reseni.resitele.add(rnd.choice(m.Resitel.objects.all()))
reseni.save()
cislo = m.Cislo.objects.get(rocnik__rocnik=22, poradi=2)
cislonode = cislo.cislonode
hodnoceni = m.Hodnoceni.objects.create(
body=15.0,
cislo_body=cislo,
reseni=reseni,
problem=clanek,
)
hodnoceni.save()
reseninode = m.ReseniNode.objects.create(
reseni=reseni
)
reseninode.save()
# Bude to celý text
reseni.text_cely = reseninode
reseni.save()
from seminar.treelib import insert_last_child, create_child
insert_last_child(cislonode, reseninode)
# Vyrobíme nějaký obsah
# FIXME: Ten, kdo vymyslel TreeLib (mj. týž, kdo psal tenhle kód),
# nevyrobil vhodnou funkci, takže to postavíme pozpátku pomocí create_child
# (které vyrábí _prvního_ syna)
create_child(reseninode, m.CastNode, nadpis="Lorem ipsum")
# Taky ten člověk nevyrobil vracení nových věcí...
castnode = reseninode.first_child
# Úvodní odstaveček
obsah = "Tohle je zamyšlení o textu lorem ipsum. Začneme a skončíme ukázkou."
text = m.Text.objects.create(
na_web=obsah,
do_cisla=obsah,
)
text.save()
create_child(reseninode, m.TextNode, text=text)
# Několik odstavců lorem ipsum
for _ in range(rnd.randint(3, 7)):
lipsum = lorem.paragraph()
text = m.Text.objects.create(
na_web=lipsum,
do_cisla=lipsum,
)
text.save()
create_child(castnode, m.TextNode, text=text)
logger.info(f"Článek vygenerován (reseni={reseni.id}, treenode={reseninode.id})")
@transaction.atomic
def create_test_data(size = 6, rnd = None):
logger.info('Vyrábím testovací data (size={})...'.format(size))
@ -768,6 +839,8 @@ def create_test_data(size = 6, rnd = None):
# TODO: mezičíslo node
# TODO: přidat ke konferám řešení a dát je do čísel
# Dohackované vytvoření jednoho článku
gen_clanek(rnd)
# obecné nastavení semináře, musí být už přidané ročníky a čísla, jinak se nastaví divně

Loading…
Cancel
Save