From 80dd25ba02bbdc0039be5c3118dc3a495096dfaa Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Sun, 1 Aug 2021 17:13:47 +0300 Subject: [PATCH] unit test pass --- app/scodoc/sco_abs_views.py | 20 ++++++++++++++------ app/scodoc/sco_formsemestre.py | 6 +++--- app/scodoc/sco_semset.py | 2 +- app/scodoc/sco_utils.py | 8 ++++---- app/views/absences.py | 6 +++--- tests/unit/test_abs_demijournee.py | 27 +++++++++++++-------------- 6 files changed, 38 insertions(+), 31 deletions(-) diff --git a/app/scodoc/sco_abs_views.py b/app/scodoc/sco_abs_views.py index efd0e2c5..02b7f86e 100644 --- a/app/scodoc/sco_abs_views.py +++ b/app/scodoc/sco_abs_views.py @@ -687,7 +687,7 @@ def EtatAbsences(context, REQUEST=None): """ - % (scu.AnneeScolaire(REQUEST), datetime.datetime.now().strftime("%d/%m/%Y")), + % (scu.AnneeScolaire(), datetime.datetime.now().strftime("%d/%m/%Y")), html_sco_header.sco_footer(), ] return "\n".join(H) @@ -721,12 +721,13 @@ def formChoixSemestreGroupe(context, all=False): return "\n".join(H) -def CalAbs(context, REQUEST=None): # etud implied +def CalAbs(context, etudid, sco_year=None): """Calendrier des absences d'un etudiant""" # crude portage from 1999 DTML + REQUEST = None # XXX etud = sco_etud.get_etud_info(filled=1, REQUEST=REQUEST)[0] etudid = etud["etudid"] - anneescolaire = int(scu.AnneeScolaire(REQUEST)) + anneescolaire = int(scu.AnneeScolaire(sco_year)) datedebut = str(anneescolaire) + "-08-31" datefin = str(anneescolaire + 1) + "-07-31" nbabs = sco_abs.count_abs(etudid=etudid, debut=datedebut, fin=datefin) @@ -796,18 +797,25 @@ def CalAbs(context, REQUEST=None): # etud implied def ListeAbsEtud( context, etudid, - with_evals=True, # indique les evaluations aux dates d'absences + with_evals=True, format="html", - absjust_only=0, # si vrai, renvoie table absences justifiées + absjust_only=0, + sco_year=None, REQUEST=None, ): """Liste des absences d'un étudiant sur l'année en cours En format 'html': page avec deux tableaux (non justifiées et justifiées). En format json, xml, xls ou pdf: l'un ou l'autre des table, suivant absjust_only. En format 'text': texte avec liste d'absences (pour mails). + + Args: + etudid: + with_evals: indique les evaluations aux dates d'absences + absjust_only: si vrai, renvoie table absences justifiées + sco_year: année scolaire à utiliser. Si non spécifier, utilie l'année en cours. e.g. "2005" """ absjust_only = int(absjust_only) # si vrai, table absjust seule (export xls ou pdf) - datedebut = "%s-08-31" % scu.AnneeScolaire(REQUEST) + datedebut = "%s-08-31" % scu.AnneeScolaire(sco_year=sco_year) etud = sco_etud.get_etud_info(etudid=etudid, filled=True)[0] diff --git a/app/scodoc/sco_formsemestre.py b/app/scodoc/sco_formsemestre.py index 701ca631..529421dc 100644 --- a/app/scodoc/sco_formsemestre.py +++ b/app/scodoc/sco_formsemestre.py @@ -408,7 +408,7 @@ def sem_in_semestre_scolaire(context, sem, year=False, saison=0, REQUEST=None): ) """ if not year: - year = scu.AnneeScolaire(REQUEST) + year = scu.AnneeScolaire() # est-on dans la même année universitaire ? if sem["mois_debut_ord"] > 7: if sem["annee_debut"] != str(year): @@ -432,7 +432,7 @@ def sem_in_annee_scolaire(context, sem, year=False, REQUEST=None): Si annee non specifiée, année scolaire courante """ if not year: - year = scu.AnneeScolaire(REQUEST) + year = scu.AnneeScolaire() return ((sem["annee_debut"] == str(year)) and (sem["mois_debut_ord"] > 7)) or ( (sem["annee_debut"] == str(year + 1)) and (sem["mois_debut_ord"] <= 7) ) @@ -574,7 +574,7 @@ def view_formsemestre_by_etape(context, etape_apo=None, format="html", REQUEST=N tab = table_formsemestres( context, list_formsemestre_by_etape( - context, etape_apo=etape_apo, annee_scolaire=scu.AnneeScolaire(REQUEST) + context, etape_apo=etape_apo, annee_scolaire=scu.AnneeScolaire() ), html_title=html_title, html_next_section="""
diff --git a/app/scodoc/sco_semset.py b/app/scodoc/sco_semset.py index 3bef7740..384dcbd5 100644 --- a/app/scodoc/sco_semset.py +++ b/app/scodoc/sco_semset.py @@ -479,7 +479,7 @@ def semset_page(context, format="html", REQUEST=None): ] H.append(tab.html()) - annee_courante = int(scu.AnneeScolaire(REQUEST)) + annee_courante = int(scu.AnneeScolaire()) menu_annee = "\n".join( [ '' % (i, i) diff --git a/app/scodoc/sco_utils.py b/app/scodoc/sco_utils.py index 39c43dbf..c9983d63 100644 --- a/app/scodoc/sco_utils.py +++ b/app/scodoc/sco_utils.py @@ -762,16 +762,16 @@ def query_portal(req, msg="Portail Apogee", timeout=3): return data -def AnneeScolaire(REQUEST=None): # TODO remplacer REQUEST #sco8 +def AnneeScolaire(sco_year=None): "annee de debut de l'annee scolaire courante" - if REQUEST and "sco_year" in REQUEST.form: - year = REQUEST.form["sco_year"] + if sco_year: + year = sco_year try: year = int(year) if year > 1900 and year < 2999: return year except: - pass + raise sco_exceptions.ScoValueError("invalid sco_year") t = time.localtime() year, month = t[0], t[1] if month < 8: # le "pivot" est le 1er aout diff --git a/app/views/absences.py b/app/views/absences.py index 9ac72583..f0482e96 100644 --- a/app/views/absences.py +++ b/app/views/absences.py @@ -173,7 +173,7 @@ def index_html(context, REQUEST=None): % REQUEST.URL0, sco_abs_views.formChoixSemestreGroupe(context), "

", - cal_select_week(context, REQUEST=REQUEST), + cal_select_week(context), """

Sélectionner le groupe d'étudiants, puis cliquez sur une semaine pour saisir les absences de toute cette semaine.

""", @@ -188,10 +188,10 @@ saisir les absences de toute cette semaine.

return "\n".join(H) -def cal_select_week(context, year=None, REQUEST=None): +def cal_select_week(context, year=None): "display calendar allowing week selection" if not year: - year = scu.AnneeScolaire(REQUEST) + year = scu.AnneeScolaire() sems = sco_formsemestre.do_formsemestre_list(context) if not sems: js = "" diff --git a/tests/unit/test_abs_demijournee.py b/tests/unit/test_abs_demijournee.py index db3a1550..9fb429e5 100644 --- a/tests/unit/test_abs_demijournee.py +++ b/tests/unit/test_abs_demijournee.py @@ -243,32 +243,31 @@ def test_abs_basic(test_client): b = sco_abs.is_work_saturday(context) assert b == 0 # samedi ne sont pas compris nbabs, nbabsjust = sco_abs.get_abs_count(etudid, sem) - assert ( - nbabs == 5 - ) # l'étudiant a été absent le 15 (apres midi) , (16 et 17 we), 18 (matin) et 19 janvier (matin et apres midi), et 22 (matin) - assert nbabsjust == 4 # l'étudiant justifie ses abs du 15, 18 et 19 + # l'étudiant a été absent le 15 (apres midi) , (16 et 17 we), + # 18 (matin) et 19 janvier (matin et apres midi), et 22 (matin) + assert nbabs == 5 + # l'étudiant justifie ses abs du 15, 18 et 19 + assert nbabsjust == 4 - # + vérification à l'aide de ScoDoc WEB : ok! - - # --- Supression d'une absence et d'une justification + # --- Suppression d'une absence et d'une justification _ = sco_abs_views.doAnnuleAbsence( context, "19/01/2021", "19/01/2021", 2, etudid=etudid ) nbabs, nbabsjust = sco_abs.get_abs_count(etudid, sem) - print(nbabs) # lors du print cela affiche 5 or cela devrait afficher 3 + assert nbabs == 3 + assert nbabsjust == 2 - # assert nbabs == 3 - # + vérification à l'aide de ScoDoc WEB : il y a bien plus que 3 abs, 2 justifiés et 1 non justifié. - - # --- supression d'une justification pas encore disponible à l'aide de python. + # --- suppression d'une justification pas encore disponible à l'aide de python. # --- Création d'une liste d'abs liste_abs = sco_abs_views.ListeAbsEtud( - context, etudid, format="json", absjust_only=1 + context, etudid, format="json", absjust_only=1, sco_year="2020" + ) + liste_abs2 = sco_abs_views.ListeAbsEtud( + context, etudid, format="json", sco_year="2020" ) - liste_abs2 = sco_abs_views.ListeAbsEtud(context, etudid, format="json") load_liste_abs = json.loads(liste_abs) load_liste_abs2 = json.loads(liste_abs2)