From 01820b5a9112cf34712720d08083fa698d72baef Mon Sep 17 00:00:00 2001 From: root Date: Wed, 9 Jun 2021 19:21:58 +0200 Subject: [PATCH] ajout des commentaires --- scotests/test_abs_demijournee.py | 13 +++- scotests/test_absence.py | 48 +++++++++++-- scotests/test_etudiant1.py | 85 ++++++++++++++++------- scotests/test_evaluation.py | 30 ++++++-- scotests/test_evaluation_suppress_alln.py | 5 ++ scotests/test_formations.py | 4 +- scotests/test_groupes.py | 15 ++-- scotests/test_scenario4_formation.py | 1 + scotests/test_user.py | 29 ++++++-- 9 files changed, 178 insertions(+), 52 deletions(-) diff --git a/scotests/test_abs_demijournee.py b/scotests/test_abs_demijournee.py index 14c86b45a..84582a242 100755 --- a/scotests/test_abs_demijournee.py +++ b/scotests/test_abs_demijournee.py @@ -1,3 +1,6 @@ +""" Parametre demijournee ne fonctionne pas lorsque demijournee = 2 +Créer et justifier des absences en utilisant le parametre demijournee +""" import random # La variable context est définie par le script de lancement @@ -103,4 +106,12 @@ _ = sco_abs_views.doJustifAbsence( a = sco_abs.getAbsSemEtud(context.Absences, sem, etudid) assert a.CountAbs() == 4 #l'étudiant a été absent le 15 journée compléte (2 abs : 1 matin, 1 apres midi) et le 18 (1 matin), et le 19 (1 apres midi). -assert a.CountAbsJust() == 2 # Justifie abs du matin + abs après midi \ No newline at end of file +assert a.CountAbsJust() == 2 # Justifie abs du matin + abs après midi + +""" +Commentaire : + +Pb : le 2 ne peut pas être pris en tant que int car string dans la fonction +-----> Pb regler + +""" \ No newline at end of file diff --git a/scotests/test_absence.py b/scotests/test_absence.py index 5a9ba1a31..6c2fdd928 100755 --- a/scotests/test_absence.py +++ b/scotests/test_absence.py @@ -1,5 +1,6 @@ -""" creation de 10 étudiants, formation, semestre, ue, module, absences le matin, l'apres midi, la journée compléte et justification -d'absences, supression d'absences, création d'une liste etat absences, creation d'un groupe afin de tester la fonction EtatAbsencesGroupes +""" creation de 10 étudiants, formation, semestre, ue, module, absences le matin, l'apres midi, la journée compléte +et justification d'absences, supression d'absences, création d'une liste etat absences, creation d'un groupe afin +de tester la fonction EtatAbsencesGroupes Fonctions de l'API utilisé : - doSignaleAbsence @@ -14,6 +15,9 @@ Fonctions de l'API utilisé : - partition_create - createGroup - set_group + - EtatAbsenceGr + - AddBilletAbsence + - listeBilletsEtud """ @@ -182,8 +186,6 @@ assert len(load_liste_abs) == 2 assert load_liste_abs2[0]["ampm"] == "1" assert load_liste_abs2[0]["datedmy"] == "22/01/2021" assert load_liste_abs2[0]["exams"] == mod["code"] - - # absjust_only -> seulement les abs justifiés @@ -222,5 +224,43 @@ for un_etud in load_grp1_abs : assert un_etud["nbabsnonjust"] == "1" assert un_etud["nomprenom"] == etuds[0]["nomprenom"] +# --- Création de billets + +b1 = context.Absences.AddBilletAbsence( + begin="2021-01-22 00:00", + end="2021-01-22 23:59", + etudid=etudid, + description = "abs du 22", + justified=False, + code_nip=etuds[0]["code_nip"], + code_ine=etuds[0]["code_ine"], + REQUEST=REQUEST, + ) + +b2 = context.Absences.AddBilletAbsence( + begin="2021-01-15 00:00", + end="2021-01-15 23:59", + etudid=etudid, + description = "abs du 15", + code_nip=etuds[0]["code_nip"], + code_ine=etuds[0]["code_ine"], + REQUEST=REQUEST, + ) +li_bi = context.Absences.listeBilletsEtud(etudid=etudid, REQUEST=REQUEST, format="json") +load_li_bi = json.loads(li_bi) + +assert len(load_li_bi) == 2 +assert load_li_bi[1]["description"] == "abs du 22" + +""" +Commentaire : + +Parametre demijournee ne prend pas en compte les strings ---> pb régler. + +La suppression de justification ne peut pas se faire directement en interractif à l'aide de python. + +La fonction CountAbs ne met pas à jour le nombre après supression des absences. ---> (cf : test_CountAbs.py) + +""" \ No newline at end of file diff --git a/scotests/test_etudiant1.py b/scotests/test_etudiant1.py index cf2b4334f..cb10fda67 100755 --- a/scotests/test_etudiant1.py +++ b/scotests/test_etudiant1.py @@ -1,20 +1,13 @@ -""" 3) Création d’étudiants, formation etc… Au cours de l’année un étudiant déménage et souhaite changer -ses informations personnelles. Un autre étudiant lui à changer de téléphone portable ainsi que d’adresse e-mail. -Changer les données - -Vérifier si les changements se sont effectués +""" Création de 2 étudiants, un qui demissionne, un autre defaillant + annuler demission et annuler défaillance Fonctions de l’API utilisé : -- create_formation -- create_ue -- create_module -- create_matiere -- create_formsemestre -- create_moduleimpl -- inscrit_etudiant -- etuds_info -- getEtudInfo -- identite_edit +- doDemEtudiant +- doDefEtudiant +- doCancelDem +- doCancelDef +- etud_info +- search_etud_in_dept +- fillEtudsInfo """ @@ -27,13 +20,14 @@ context = context # pylint: disable=undefined-variable REQUEST = REQUEST # pylint: disable=undefined-variable import scotests.sco_fake_gen as sco_fake_gen # pylint: disable=import-error import scolars +import sco_find_etud G = sco_fake_gen.ScoFake(context.Notes) G.verbose = False # --- Création d'étudiants -etud = G.create_etud( +etud1 = G.create_etud( code_nip="", nom="Poire", prenom="Kevin", @@ -55,6 +49,8 @@ etud = G.create_etud( description="etudiant test", ) +etud2 = G.create_etud() + # --- Création d'une formation f = G.create_formation(acronyme="") ue = G.create_ue(formation_id=f["formation_id"], acronyme="TST1", titre="ue test") @@ -82,17 +78,58 @@ mi = G.create_moduleimpl( responsable_id="bach", ) +# --- Inscription des étudiants -# --- Inscription de l'étudiant +G.inscrit_etudiant(sem, etud1) +G.inscrit_etudiant(sem, etud2) -G.inscrit_etudiant(sem, etud) +# --- Etud_info -print(etud) - -info = context.Scolarite.etud_info(etud["etudid"], format = "json", REQUEST=REQUEST) +info = context.Scolarite.etud_info(etud1["etudid"], format = "json", REQUEST=REQUEST) load_info = json.loads(info) -print(load_info) -# --- Modification des données -scolars.adresse_edit(context.Scolarite, args = {"domicile" : "9 rue du moulin"}) \ No newline at end of file +# --- Démission étudiant + +context.doDemEtudiant(etud1["etudid"], sem["formsemestre_id"], event_date="01/01/2021") + +bul = sco_bulletins.formsemestre_bulletinetud_dict(context.Notes, sem["formsemestre_id"], etud1["etudid"]) +assert bul["moy_gen"] == "NA" +assert bul["ins"][0]["etat"] == "D" + +# --- Défaillance d'un étudiant + +context.doDefEtudiant(etud2["etudid"], sem["formsemestre_id"], event_date="01/01/2021") + +bul = sco_bulletins.formsemestre_bulletinetud_dict(context.Notes, sem["formsemestre_id"], etud1["etudid"]) +assert bul["moy_gen"] == "NA" +assert bul["ins"][0]["etat"] == "D" + +# --- Annuler démission + +context.Scolarite.doCancelDem(etud1["etudid"], sem["formsemestre_id"], REQUEST=REQUEST) +bul = sco_bulletins.formsemestre_bulletinetud_dict(context.Notes, sem["formsemestre_id"], etud1["etudid"]) +print(bul["ins"][0]["etat"]) +#assert bul["ins"][0]["etat"] == "I" + +# --- Annuler défaillance + +context.Scolarite.doCancelDef(etud2["etudid"], sem["formsemestre_id"], REQUEST=REQUEST) +bul = sco_bulletins.formsemestre_bulletinetud_dict(context.Notes, sem["formsemestre_id"], etud1["etudid"]) +print(bul["ins"][0]["etat"]) +#assert bul["ins"][0]["etat"] == "I" + +# --- Fonctions retournant HTML + +find = sco_find_etud.search_etud_in_dept(context.Scolarite, expnom="Poire", REQUEST=REQUEST) + +_ = context.Scolarite.fillEtudsInfo(etuds=[etud1]) + +""" +Commentaire : + +L'etat ne se met pas à jour après l'annulation de la démission ou de la défaillance. + +etud_info ne donne pas toutes les infos de l'étudiant voir mini test create_etud. + +""" \ No newline at end of file diff --git a/scotests/test_evaluation.py b/scotests/test_evaluation.py index 084fc6b04..9b7b19c8a 100755 --- a/scotests/test_evaluation.py +++ b/scotests/test_evaluation.py @@ -1,6 +1,21 @@ """ Création d'une formation, d'élève de 2 ue dans un semestre et de 6 évaluations par 3 fonction différentes : create_eval, evaluation_create et do_evaluation_create. Saisir les notes des évaluations, lister ces evaluations, -supprimer et modifier une evaluation """ +supprimer et modifier une evaluation + +Fonction de l'API utilisé : + - create_evaluation + - evaluation_create + - do_evaluation_create + - do_evaluation_list_in_formsemestre + - do_evaluation_list + - create_note + - check_absences + - do_evaluation_etat + - evaluation_supress_alln + - do_evaluation_edit + - do_evaluation_delete + + """ import sys import random @@ -181,9 +196,7 @@ check2 = sco_liste_notes.evaluation_check_absences(context.Notes, evaluation_id= # --- Liste de note d'une évaluation -#lien = context.Notes.do_evaluation_listnotes(REQUEST=REQUEST) -#print (lien) pb avec les arguments. - +#lien = sco_liste_notes.do_evaluation_listenotes(context=context.Notes, REQUEST=REQUEST) cal = sco_evaluations.formsemestre_evaluations_cal(context.Notes, formsemestre_id=sem["formsemestre_id"], REQUEST=REQUEST) #html @@ -233,3 +246,12 @@ assert len(lie) == 5 sco_evaluations.do_evaluation_delete(context.Notes, REQUEST=REQUEST, evaluation_id=e7["evaluation_id"]) lie2 = context.Notes.do_evaluation_list_in_formsemestre(formsemestre_id=sem["formsemestre_id"]) assert len(lie2) == 4 + + +""" +Commentaire : + +Plusieurs fonction retourne de l'HTML, les notes ne se suppriment pas malgre l'utilisation de la fonction +evaluation_supress_alln (voir mini test). evaluation_delete ---> rien ne se passe. + +""" \ No newline at end of file diff --git a/scotests/test_evaluation_suppress_alln.py b/scotests/test_evaluation_suppress_alln.py index 5e1400209..89106f03c 100755 --- a/scotests/test_evaluation_suppress_alln.py +++ b/scotests/test_evaluation_suppress_alln.py @@ -1,3 +1,5 @@ +""" Création d'une évaluation, saisie des notes et supressions de toutes les notes """ + import random # La variable context est définie par le script de lancement # l'affecte ainsi pour évietr les warnins pylint: @@ -68,3 +70,6 @@ sco_saisie_notes.evaluation_suppress_alln(context.Notes, e["evaluation_id"], REQ etat = sco_evaluations.do_evaluation_etat(context.Notes, e["evaluation_id"]) assert not etat["evalcomplete"] +""" +Commentaire : Les notes ne se suppriment pas et l'etat ne change donc pas +""" \ No newline at end of file diff --git a/scotests/test_formations.py b/scotests/test_formations.py index a3feb82d4..764d00ea9 100755 --- a/scotests/test_formations.py +++ b/scotests/test_formations.py @@ -316,6 +316,4 @@ context.Notes.do_formation_delete(oid=f2["formation_id"], REQUEST=REQUEST) lif3 = context.Notes.formation_list(format = 'json', REQUEST=REQUEST) load_lif3 = json.loads(lif3) -assert len(load_lif3) == 1 - - +assert len(load_lif3) == 1 \ No newline at end of file diff --git a/scotests/test_groupes.py b/scotests/test_groupes.py index 142faf4e2..745890f01 100755 --- a/scotests/test_groupes.py +++ b/scotests/test_groupes.py @@ -334,7 +334,7 @@ assert li_grp1[0] == sco_groups.get_group(context.Scolarite, li_grp1[0]["group_i assert len(li_grp2) == 3 sco_groups.group_delete(context.Scolarite, li_grp2[2]) -#assert len(li_grp2) == 2 #TESTE DE group_delete, aucun changement sur la console mais se supprime sur scodoc web +#assert len(li_grp2) == 2 #TEST DE group_delete, aucun changement sur la console mais se supprime sur scodoc web # mais pas dans la console comme pour countAbs() assert sco_groups.get_partition(context.Scolarite, li1[0]["partition_id"])== li1[0] # test de get_partition @@ -370,16 +370,13 @@ assert li_grp3[0] in sg # test de get_sem_groups limembre = sco_groups.get_group_members(context.Scolarite, li_grp1[0]["group_id"]) assert len(limembre) == 4 # car on a changé de groupe un etudiant de ce groupe donc 5-1=4 +""" +Commentaire : +Meme probleme que pour les groupes, lorsque l'on supprime un groupe il est toujours présent dans la liste de groupe +mais pas dans scodoc web. -# --- Changement de nom des partitions, groupes - -# Le changement de nom des groupes et des partitions n'est pas possible en python car la fonction est une fonction d'envoie de formulaire. - - - - - +""" diff --git a/scotests/test_scenario4_formation.py b/scotests/test_scenario4_formation.py index b690022a0..7b753afc9 100755 --- a/scotests/test_scenario4_formation.py +++ b/scotests/test_scenario4_formation.py @@ -16,6 +16,7 @@ doc = file.read() file.close() + # --- Création de la formation f = sco_formations.formation_import_xml(REQUEST=REQUEST, doc=doc, context=context.Notes) diff --git a/scotests/test_user.py b/scotests/test_user.py index 00b47817a..88e6b11c2 100755 --- a/scotests/test_user.py +++ b/scotests/test_user.py @@ -1,6 +1,4 @@ -""" Créer un utilisateur, récupérer ses infos, - lister les utilisateurs, modifier le mdp, modfifier l'utilisateur (si possible), - changer d'admin, tester d'autre fonctionalités liés aux users """ +""" Créer un utilisateur, recupérer ses infos, changer son mdp, le supprimer """ import random # La variable context est définie par le script de lancement @@ -12,12 +10,12 @@ import ZScoUsers import ZScoDoc import ZScolar - nomdept = raw_input("Quel est le nom de votre département test? ATTENTION A NE PAS VOUS TROMPER : ") # --- Création d'un utilisateur -arg = {"passwd": "scodocpass", "user_name" : "unutil", "nom" : "unnom", "prenom":"unprenom", "email": "unemail@mail.fr", "roles" :"Ens"+nomdept+",RespPe"+nomdept} +arg = {"passwd": "scodocpass", "user_name" : "unutil", "nom" : "unnom", "prenom":"unprenom", + "email": "unemail@mail.fr", "roles" :"Ens"+nomdept+",RespPe"+nomdept} #user1 = context.Users.create_user(args=arg, REQUEST=REQUEST) user_info1 = context.Users.user_info(user_name="unutil") @@ -31,19 +29,36 @@ assert user_info1["roles"] == arg["roles"] # --- Récupération de la liste des Users liste_xml = context.Users.get_userlist_xml(REQUEST=REQUEST) +print(liste_xml) liste_user = context.Users.get_userlist() len_liu1 = len(liste_user) assert user_info1 in liste_user #le nouvel utilisateur est bien dans la liste ! -# --- Changement du mot de passe de l'utilisateur +# --- Récupérer user_name à partir de nomplogin -#context.Users.change_password(user_name="unutil", password=) +user_name1 = context.Users.get_user_name_from_nomplogin(nomplogin=user_info1["nomplogin"]) +assert user_name1 == "unutil" + +# --- Changement du mot de passe de l'utilisateur context.Users.do_change_password(user_name="unutil", password="scodocpass2") #vérification du mdp changé directement sur scodoc web car je ne trouve pas comment récupérer le mdp en python #Vérification : ok! +# --- Supression d'un utilisateur +#context.Users.delete_user_form(REQUEST=REQUEST, user_name="unutil") +# --- Test de la récupération de l'URL + +url = context.Users.UsersURL() +assert url == "ScoDoc/"+nomdept+"/Scolarite/Users" + +""" +Commentaire : + +La supression d'un utilisateur ne fonctionne pas car nécessite l'envoie d'un formulaire. + +""" \ No newline at end of file