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 efd0e2c5e0..02b7f86e49 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 701ca6316e..529421dcdf 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="""
",
- 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 db3a15505e..9fb429e5a0 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)