testutils.py: drobné změny

This commit is contained in:
Tomáš Domes 2019-06-20 21:05:15 +02:00
parent e9bb4d1654
commit d93e8bfc6d

View file

@ -7,7 +7,7 @@ import django.contrib.auth
from django.db import transaction from django.db import transaction
import unidecode import unidecode
from seminar.models import Skola, Resitel, Rocnik, Cislo, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Osoba, Organizator, Prijemce, Tema, Uloha, Konfera, KonferaNode, RocnikNode from seminar.models import Skola, Resitel, Rocnik, Cislo, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Osoba, Organizator, Prijemce, Tema, Uloha, Konfera, KonferaNode, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode
from django.contrib.flatpages.models import FlatPage from django.contrib.flatpages.models import FlatPage
from django.contrib.sites.models import Site from django.contrib.sites.models import Site
@ -148,7 +148,7 @@ def gen_ulohy_do_cisla(rnd, cislo, organizatori, resitele, slovnik_cisel, size):
"sporné", "nepopsatelně jednoduché", "pokud jste na to nepřišli," "sporné", "nepopsatelně jednoduché", "pokud jste na to nepřišli,"
"tak jste fakt hloupí"] "tak jste fakt hloupí"]
if cislo >= 3: if cislo >= 3: #TODO nagenerovat i nody!!!
for pi in range(1, ((size + 1) // 2) + 1): for pi in range(1, ((size + 1) // 2) + 1):
poc_op = rnd.randint(1, 4) # počet opravovatelů poc_op = rnd.randint(1, 4) # počet opravovatelů
poc_oboru = rnd.randint(1, 2) poc_oboru = rnd.randint(1, 2)
@ -368,52 +368,53 @@ def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata): #
for rocnik in rocniky: for rocnik in rocniky:
slovnik_cisel = slovnik_rocnik_cisla[rocnik] slovnik_cisel = slovnik_rocnik_cisla[rocnik]
slovnik_temat = slovnik_rocnik_temata[rocnik] slovnik_temat = slovnik_rocnik_temata[rocnik]
for cislo in slovnik_cisel: for cislo in slovnik_cisel:
syn = cislo.CisloNode.first_child syn = cislo.CisloNode.first_child
while syn != None: while syn != None:
tema = syn.tema if type(syn) != TemaVCisleNode
for i in range(1, rnd.randint(1, 4)) continue
poc_op = rnd.randint(1, 4) else:
poc_oboru = rnd.randint(1, 2) tema = syn.tema
p = Uloha.objects.create( for i in range(1, rnd.randint(1, 4))
nazev=": ".join([tema.nazev, poc_op = rnd.randint(1, 4)
"úloha {}.".format(i)]), poc_oboru = rnd.randint(1, 2)
nadproblem=tema, p = Uloha.objects.create(
stav=Problem.STAV_ZADANY, nazev=": ".join([tema.nazev,
zamereni=tema.zamereni, "úloha {}.".format(i)]),
autor=tema.autor, nadproblem=tema,
garant=tema.garant, stav=Problem.STAV_ZADANY,
opravovatele=rnd.sample(organizatori, poc_op), zamereni=tema.zamereni,
kod=str(i), autor=tema.autor,
cislo_zadani=cislo, garant=tema.garant,
cislo_reseni=slovnik_cisel[cislo.cislo+2], opravovatele=rnd.sample(organizatori, poc_op),
cislo_deadline=slovnik_cisel[cislo.cislo+2], kod=str(i),
max_body = rnd.randint(1, 8) cislo_zadani=cislo,
) cislo_reseni=slovnik_cisel[cislo.cislo+2],
p.zadani = " ".join([rnd.choice(sloveso), rnd.choice(koho), cislo_deadline=slovnik_cisel[cislo.cislo+2],
rnd.choice(ceho), rnd.choice(jmeno), rnd.choice(kde)]) max_body = rnd.randint(1, 8)
)
p.zadani = " ".join([rnd.choice(sloveso), rnd.choice(koho),
rnd.choice(ceho), rnd.choice(jmeno), rnd.choice(kde)])
#Tomův pokus o opravu bugu: text_vzoraku = Text.objects.create(
text_vzoraku = Text.objects.create( na_web = rnd.choice(reseni),
na_web = rnd.choice(reseni), do_cisla = rnd.choice(reseni)
do_cisla = rnd.choice(reseni) )
) vzorak = TextNode.objects.create(text = text_vzoraku)
vzorak = TextNode.objects.create(text = text_vzoraku) uloha_vzorak = UlohaVzorakNode.objects.create(uloha=p, first_child = vzorak)
uloha_vzorak = UlohaVzorakNode.objects.create(uloha=p, first_child = vzorak) p.UlohaVzorakNode = uloha_vzorak
p.UlohaVzorakNode = uloha_vzorak p.save()
#p.vzorak = " - ".join([p.zadani, rnd.choice(reseni)])
p.save()
syn = syn.succ
syn = syn.succ
# vytvor text # vytvor text
# vytvor TemaVCisleNode # vytvor TemaVCisleNode
if (rnd.randint(1, 3) % 3 == 0): if (rnd.randint(1, 3) % 3 == 0):
# vytvor mezicislo Node # vytvor mezicislo Node
pass pass
@transaction.atomic @transaction.atomic
def create_test_data(size = 6, rnd = None): def create_test_data(size = 6, rnd = None):
@ -482,11 +483,6 @@ def create_test_data(size = 6, rnd = None):
# generování úloh k tématům ve všech číslech # generování úloh k tématům ve všech číslech
gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata) gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata)
# nagenerovat k tématu úlohy a Nody pro vsechna cisla
# FIXME: misto typu ruzne typy objektu a vnoreni do sebe # FIXME: misto typu ruzne typy objektu a vnoreni do sebe
# TODO: vytvorit temata s ruznymi vlakny # TODO: vytvorit temata s ruznymi vlakny
# TODO: nagenerovat starsim rocnikum pohadku # TODO: nagenerovat starsim rocnikum pohadku