forked from aurelien.plancke/ScodocTestClient
amélioration et maj du YAML
This commit is contained in:
parent
09a80e8dd5
commit
9fe52f9960
@ -24,33 +24,40 @@ from selenium.webdriver.support.ui import Select, WebDriverWait
|
|||||||
from selenium.webdriver.support.select import Select
|
from selenium.webdriver.support.select import Select
|
||||||
|
|
||||||
URL_MATIERE = ""
|
URL_MATIERE = ""
|
||||||
|
URL_SEMESTRE = ""
|
||||||
|
URL = BASE_URL + NOM_DPT + "/Scolarite"
|
||||||
|
|
||||||
# Prérequis
|
# Prérequis
|
||||||
class PythonOrgSearch(unittest.TestCase):
|
class PythonOrgSearch(unittest.TestCase):
|
||||||
# Permet de se connecter et se remettre sur la page d'accueil avant chaque test
|
# Permet de se connecter et se remettre sur la page d'accueil avant chaque test
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
|
||||||
if NAVIGATEUR == "firefox":
|
if NAVIGATEUR == "firefox":
|
||||||
self.driver = webdriver.Firefox()
|
self.driver = webdriver.Firefox()
|
||||||
else:
|
else:
|
||||||
self.driver = webdriver.Chrome()
|
self.driver = webdriver.Chrome()
|
||||||
self.url = BASE_URL + NOM_DPT + "/Scolarite"
|
|
||||||
self.wait = WebDriverWait(self.driver, 10)
|
self.wait = WebDriverWait(self.driver, 10)
|
||||||
self.driver.get(BASE_URL)
|
self.driver.get(
|
||||||
self.driver.find_element_by_id("utilisateur_Vue").click()
|
"https://"
|
||||||
self.driver.find_element_by_id("name").send_keys(SCODOC_ENS_ID)
|
+ SCODOC_ADMIN_ID
|
||||||
self.driver.find_element_by_id("password").send_keys(SCODOC_ENS_PASS)
|
+ ":"
|
||||||
self.driver.find_element_by_id("submit").click()
|
+ SCODOC_ADMIN_PASS
|
||||||
|
+ "@"
|
||||||
|
+ BASE_NOT_SECURED_URL
|
||||||
|
+ "force_admin_authentication"
|
||||||
|
)
|
||||||
|
self.wait = WebDriverWait(self.driver, 10)
|
||||||
|
#self.driver.get(self.url)
|
||||||
|
#self.driver.find_element_by_id("name").send_keys(SCODOC_ENS_ID)
|
||||||
|
#self.driver.find_element_by_id("password").send_keys(SCODOC_ENS_PASS)
|
||||||
|
#self.driver.find_element_by_id("submit").click()
|
||||||
|
|
||||||
# Test : Vérifie s'il y a un semestre en cours
|
# Test : Vérifie s'il y a un semestre en cours
|
||||||
# @expected : La class listesems n'est pas vide et contient "Session en cours"
|
# @expected : La class listesems n'est pas vide et contient "Session en cours"
|
||||||
def test_010_semestre_en_cours(self):
|
def test_010_semestre_en_cours(self):
|
||||||
driver = self.driver
|
driver = self.driver
|
||||||
url = self.url
|
global URL
|
||||||
driver.get(url)
|
driver.get(URL)
|
||||||
time.sleep(1)
|
#time.sleep(1)
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
"Sessions en cours" in driver.find_element_by_class_name("listesems").text
|
"Sessions en cours" in driver.find_element_by_class_name("listesems").text
|
||||||
)
|
)
|
||||||
@ -59,12 +66,14 @@ class PythonOrgSearch(unittest.TestCase):
|
|||||||
# @expected : Le nom de la matière est présent dans le semestre préalablement testé
|
# @expected : Le nom de la matière est présent dans le semestre préalablement testé
|
||||||
def test_020_matiere_existante(self):
|
def test_020_matiere_existante(self):
|
||||||
driver = self.driver
|
driver = self.driver
|
||||||
url = self.url
|
global URL
|
||||||
driver.get(url)
|
driver.get(URL)
|
||||||
driver.find_element_by_link_text("DUT Informatique semestre 4").click()
|
driver.find_element_by_link_text("semestre 4").click()
|
||||||
time.sleep(1)
|
self.wait.until(EC.url_changes(URL))
|
||||||
try:
|
try:
|
||||||
driver.find_element_by_class_name("formsemestre_status_ue")
|
driver.find_element_by_class_name("formsemestre_status_ue")
|
||||||
|
global URL_SEMESTRE
|
||||||
|
URL_SEMESTRE = driver.current_url
|
||||||
self.assertTrue(True)
|
self.assertTrue(True)
|
||||||
except NoSuchElementException:
|
except NoSuchElementException:
|
||||||
self.assertFalse(False)
|
self.assertFalse(False)
|
||||||
@ -73,19 +82,18 @@ class PythonOrgSearch(unittest.TestCase):
|
|||||||
# @expected : Le nom de l'enseignant apparait désormais sur la page d'information du module
|
# @expected : Le nom de l'enseignant apparait désormais sur la page d'information du module
|
||||||
def test_030_ajout_enseignant_sur_module(self):
|
def test_030_ajout_enseignant_sur_module(self):
|
||||||
driver = self.driver
|
driver = self.driver
|
||||||
url = self.url
|
#driver.get(BASE_URL)
|
||||||
driver.get(BASE_URL)
|
#driver.find_element_by_link_text("déconnecter").click()
|
||||||
driver.find_element_by_link_text("déconnecter").click()
|
#driver.get(BASE_URL)
|
||||||
driver.get(BASE_URL)
|
#driver.find_element_by_id("name").send_keys(SCODOC_CHEF_ID)
|
||||||
driver.find_element_by_id("name").send_keys(SCODOC_CHEF_ID)
|
#driver.find_element_by_id("password").send_keys(SCODOC_CHEF_PASS)
|
||||||
driver.find_element_by_id("password").send_keys(SCODOC_CHEF_PASS)
|
#driver.find_element_by_id("submit").click()
|
||||||
driver.find_element_by_id("submit").click()
|
#global URL_SEMESTRE
|
||||||
driver.get(url)
|
driver.get(URL_SEMESTRE)
|
||||||
driver.find_element_by_link_text("DUT Informatique semestre 4").click()
|
|
||||||
driver.find_element_by_link_text("M4101C").click()
|
driver.find_element_by_link_text("M4101C").click()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
global urlMatiere
|
global URL_MATIERE
|
||||||
urlMatiere = driver.current_url
|
URL_MATIERE = driver.current_url
|
||||||
driver.find_element_by_partial_link_text("modifier les enseignants").click()
|
driver.find_element_by_partial_link_text("modifier les enseignants").click()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
driver.find_element_by_id("ens_id").send_keys("ENSEIGNANT Test (enseignantUS)")
|
driver.find_element_by_id("ens_id").send_keys("ENSEIGNANT Test (enseignantUS)")
|
||||||
@ -112,10 +120,11 @@ class PythonOrgSearch(unittest.TestCase):
|
|||||||
# driver.find_element_by_id("name").send_keys(SCODOC_CHEF_ID)
|
# driver.find_element_by_id("name").send_keys(SCODOC_CHEF_ID)
|
||||||
# driver.find_element_by_id("password").send_keys(SCODOC_CHEF_PASS)
|
# driver.find_element_by_id("password").send_keys(SCODOC_CHEF_PASS)
|
||||||
# driver.find_element_by_id("submit").click()
|
# driver.find_element_by_id("submit").click()
|
||||||
driver.get(urlMatiere)
|
driver.get(URL_MATIERE)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
driver.find_element_by_link_text("Créer nouvelle évaluation").click()
|
driver.find_element_by_link_text("Créer nouvelle évaluation").click()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
driver.find_element_by_name("jour").send_keys("31/05/2021")
|
||||||
driver.find_element_by_id("tf_description").send_keys(descriptionInterrogation)
|
driver.find_element_by_id("tf_description").send_keys(descriptionInterrogation)
|
||||||
driver.find_element_by_id("tf_coefficient").send_keys("2")
|
driver.find_element_by_id("tf_coefficient").send_keys("2")
|
||||||
driver.find_element_by_id("tf_submit").click()
|
driver.find_element_by_id("tf_submit").click()
|
||||||
@ -126,7 +135,8 @@ class PythonOrgSearch(unittest.TestCase):
|
|||||||
# @expected "Module" est présent dans le "formsemetre"
|
# @expected "Module" est présent dans le "formsemetre"
|
||||||
def test_050_interro_existante(self):
|
def test_050_interro_existante(self):
|
||||||
driver = self.driver
|
driver = self.driver
|
||||||
driver.get(urlMatiere)
|
global URL_MATIERE
|
||||||
|
driver.get(URL_MATIERE)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
"Module" in driver.find_element_by_class_name("formsemestre").text
|
"Module" in driver.find_element_by_class_name("formsemestre").text
|
||||||
@ -136,7 +146,8 @@ class PythonOrgSearch(unittest.TestCase):
|
|||||||
# @expected : "saisir note" est remplacé par "afficher" sur la page d'information de l'interrogation concernée
|
# @expected : "saisir note" est remplacé par "afficher" sur la page d'information de l'interrogation concernée
|
||||||
def test_060_entree_note(self):
|
def test_060_entree_note(self):
|
||||||
driver = self.driver
|
driver = self.driver
|
||||||
driver.get(urlMatiere)
|
global URL_MATIERE
|
||||||
|
driver.get(URL_MATIERE)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
driver.find_element_by_class_name("notes_img").click()
|
driver.find_element_by_class_name("notes_img").click()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
@ -152,7 +163,8 @@ class PythonOrgSearch(unittest.TestCase):
|
|||||||
# @expected : Tout les étudiants on une note
|
# @expected : Tout les étudiants on une note
|
||||||
def test_070_ajout_note_incomplete(self):
|
def test_070_ajout_note_incomplete(self):
|
||||||
driver = self.driver
|
driver = self.driver
|
||||||
driver.get(urlMatiere)
|
global URL_MATIERE
|
||||||
|
driver.get(URL_MATIERE)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
driver.find_element_by_class_name("notes_img").click()
|
driver.find_element_by_class_name("notes_img").click()
|
||||||
elements = driver.find_elements_by_class_name("note")
|
elements = driver.find_elements_by_class_name("note")
|
||||||
@ -173,7 +185,8 @@ class PythonOrgSearch(unittest.TestCase):
|
|||||||
# @expected : La moyenne ne s'affiche plus, "afficher" disparait de la page d'information de l'interrogation
|
# @expected : La moyenne ne s'affiche plus, "afficher" disparait de la page d'information de l'interrogation
|
||||||
def test_080_suppression_note(self):
|
def test_080_suppression_note(self):
|
||||||
driver = self.driver
|
driver = self.driver
|
||||||
driver.get(urlMatiere)
|
global URL_MATIERE
|
||||||
|
driver.get(URL_MATIERE)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
driver.find_element_by_class_name("notes_img").click()
|
driver.find_element_by_class_name("notes_img").click()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
@ -200,7 +213,8 @@ class PythonOrgSearch(unittest.TestCase):
|
|||||||
driver.find_element_by_id("name").send_keys(SCODOC_CHEF_ID)
|
driver.find_element_by_id("name").send_keys(SCODOC_CHEF_ID)
|
||||||
driver.find_element_by_id("password").send_keys(SCODOC_CHEF_PASS)
|
driver.find_element_by_id("password").send_keys(SCODOC_CHEF_PASS)
|
||||||
driver.find_element_by_id("submit").click()
|
driver.find_element_by_id("submit").click()
|
||||||
driver.get(urlMatiere)
|
global URL_MATIERE
|
||||||
|
driver.get(URL_MATIERE)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
driver.find_element_by_link_text("Créer nouvelle évaluation").click()
|
driver.find_element_by_link_text("Créer nouvelle évaluation").click()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
@ -225,7 +239,7 @@ class PythonOrgSearch(unittest.TestCase):
|
|||||||
+ SCODOC_ADMIN_PASS
|
+ SCODOC_ADMIN_PASS
|
||||||
+ "@scodoc-dev-iutinfo.univ-lille.fr/force_admin_authentication"
|
+ "@scodoc-dev-iutinfo.univ-lille.fr/force_admin_authentication"
|
||||||
)
|
)
|
||||||
driver.get(urlMatiere)
|
driver.get(URL_MATIERE)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
driver.find_element_by_partial_link_text("modifier les enseignants").click()
|
driver.find_element_by_partial_link_text("modifier les enseignants").click()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
@ -248,7 +262,7 @@ class PythonOrgSearch(unittest.TestCase):
|
|||||||
+ "@scodoc-dev-iutinfo.univ-lille.fr/force_admin_authentication"
|
+ "@scodoc-dev-iutinfo.univ-lille.fr/force_admin_authentication"
|
||||||
)
|
)
|
||||||
|
|
||||||
driver.get(urlMatiere)
|
driver.get(URL_MATIERE)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
elements = driver.find_elements_by_class_name("delete_img")
|
elements = driver.find_elements_by_class_name("delete_img")
|
||||||
while elements:
|
while elements:
|
||||||
@ -256,7 +270,7 @@ class PythonOrgSearch(unittest.TestCase):
|
|||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
driver.find_element_by_id("tf_submit").click()
|
driver.find_element_by_id("tf_submit").click()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
driver.get(urlMatiere)
|
driver.get(URL_MATIERE)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
elements = driver.find_elements_by_class_name("delete_img")
|
elements = driver.find_elements_by_class_name("delete_img")
|
||||||
|
|
||||||
@ -294,7 +308,16 @@ if __name__ == "__main__":
|
|||||||
driver.get(BASE_URL + NOM_DPT + "/Scolarite")
|
driver.get(BASE_URL + NOM_DPT + "/Scolarite")
|
||||||
driver.find_element_by_id("utilisateurs_Vue").click()
|
driver.find_element_by_id("utilisateurs_Vue").click()
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
if SCODOC_CHEF_ID not in driver.page_source:
|
noms = driver.find_elements_by_class_name("nom_fmt")
|
||||||
|
chefCree = False
|
||||||
|
ensCree = False
|
||||||
|
for nom in noms:
|
||||||
|
if(nom.text.lower() == SCODOC_CHEF_ID.lower()):
|
||||||
|
chefCree = True
|
||||||
|
if(nom.text.lower() == SCODOC_ENS_ID.lower()):
|
||||||
|
ensCree = True
|
||||||
|
if not chefCree:
|
||||||
|
time.sleep(5)
|
||||||
constructValue = "Ens" + NOM_DPT
|
constructValue = "Ens" + NOM_DPT
|
||||||
driver.find_element_by_id("creer_Utilisateur").click()
|
driver.find_element_by_id("creer_Utilisateur").click()
|
||||||
driver.find_element_by_id("tf_nom").send_keys(SCODOC_CHEF_ID)
|
driver.find_element_by_id("tf_nom").send_keys(SCODOC_CHEF_ID)
|
||||||
@ -306,16 +329,18 @@ if __name__ == "__main__":
|
|||||||
driver.find_element_by_xpath("//input[@value='force:list']").click()
|
driver.find_element_by_xpath("//input[@value='force:list']").click()
|
||||||
driver.find_element_by_id("tf_submit").click()
|
driver.find_element_by_id("tf_submit").click()
|
||||||
driver.find_element_by_id("utilisateurs_Vue").click()
|
driver.find_element_by_id("utilisateurs_Vue").click()
|
||||||
if SCODOC_ENS_ID not in driver.page_source:
|
if not ensCree:
|
||||||
|
time.sleep(5)
|
||||||
constructValue = "Ens" + NOM_DPT
|
constructValue = "Ens" + NOM_DPT
|
||||||
driver.find_element_by_id("creer_Utilisateur").click()
|
driver.find_element_by_id("creer_Utilisateur").click()
|
||||||
driver.find_element_by_id("tf_nom").send_keys(SCODOC_CHEF_ID)
|
driver.find_element_by_id("tf_nom").send_keys(SCODOC_ENS_ID)
|
||||||
driver.find_element_by_id("tf_user_name").send_keys(SCODOC_CHEF_ID)
|
driver.find_element_by_id("tf_user_name").send_keys(SCODOC_ENS_ID)
|
||||||
driver.find_element_by_id("tf_prenom").send_keys("ens")
|
driver.find_element_by_id("tf_prenom").send_keys("ens")
|
||||||
driver.find_element_by_id("tf_passwd").send_keys(SCODOC_CHEF_PASS)
|
driver.find_element_by_id("tf_passwd").send_keys(SCODOC_ENS_PASS)
|
||||||
driver.find_element_by_id("tf_passwd2").send_keys(SCODOC_CHEF_PASS)
|
driver.find_element_by_id("tf_passwd2").send_keys(SCODOC_ENS_PASS)
|
||||||
driver.find_element_by_xpath("//input[@value='" + constructValue + "']").click()
|
driver.find_element_by_xpath("//input[@value='" + constructValue + "']").click()
|
||||||
driver.find_element_by_xpath("//input[@name='force:list']").click()
|
driver.find_element_by_xpath("//input[@name='force:list']").click()
|
||||||
driver.find_element_by_id("tf_submit").click()
|
driver.find_element_by_id("tf_submit").click()
|
||||||
driver.find_element_by_id("utilisateurs_Vue").click()
|
driver.find_element_by_id("utilisateurs_Vue").click()
|
||||||
unittest.main()
|
driver.close()
|
||||||
|
unittest.main(warnings='ignore')
|
||||||
|
426
UserStoryNew.yaml
Normal file
426
UserStoryNew.yaml
Normal file
@ -0,0 +1,426 @@
|
|||||||
|
aliases:
|
||||||
|
EtatInitial1: &DeptCreated Le département est créé
|
||||||
|
EtatInitial2: &ProgramCreated Le programme est créé
|
||||||
|
EtatInitial3: &MatiereCreated Les matières sont créées
|
||||||
|
EtatInitial4: &EtudiantCreated Un etudiant dans chaque semestre est créé
|
||||||
|
Role1: &Admin Admin
|
||||||
|
Role2: &Secretaire Secretaire
|
||||||
|
Role3: &Prof Professeur
|
||||||
|
Role4: &AdminDPT AdminDepartement
|
||||||
|
Page1: &Accueil Accueil
|
||||||
|
Champs: [&champTest test]
|
||||||
|
Page2: &Absence Absence
|
||||||
|
Page3: &Departement Departement
|
||||||
|
Page4: &Notes Notes
|
||||||
|
Page5: &Connexion Connexion
|
||||||
|
Page6: &ConnexionAdmin ConnexionAdmin
|
||||||
|
Page7: &Scolarite Scolarite
|
||||||
|
test1:
|
||||||
|
intitulé: "Connexion en admin"
|
||||||
|
operation: Acceder à la page scodoc_admin avec les identifiants admin;
|
||||||
|
resultat: Connexion établie (h3 = page Administration de scodoc)
|
||||||
|
etat: *DeptCreated
|
||||||
|
page: *Connexion
|
||||||
|
champsModifie: null
|
||||||
|
champsInteractions: null
|
||||||
|
role: *Admin
|
||||||
|
createur: Aurélien
|
||||||
|
test2:
|
||||||
|
intitulé: Création d'un département
|
||||||
|
operation:
|
||||||
|
Accès à la page scodoc_admin,
|
||||||
|
séléctionner un département dans création département,
|
||||||
|
clicker sur créer département,
|
||||||
|
valider sur la page suivante
|
||||||
|
resultat: Apparition du lien du département sur la page d'accueil
|
||||||
|
etat: *DeptCreated
|
||||||
|
page: *ConnexionAdmin
|
||||||
|
champs:
|
||||||
|
role: *Admin
|
||||||
|
createur: Aurélien
|
||||||
|
test3:
|
||||||
|
intitulé: Suppression d'un département
|
||||||
|
operation:
|
||||||
|
Accès à la page scodoc_admin,
|
||||||
|
séléctionner un département dans suppresion département,
|
||||||
|
clicker sur supprimer et valider
|
||||||
|
resultat: Disparition du lien du département sur la page d'accueil
|
||||||
|
etat: *DeptCreated
|
||||||
|
page: *ConnexionAdmin
|
||||||
|
champs:
|
||||||
|
role: *Admin
|
||||||
|
createur: Aurélien
|
||||||
|
test4:
|
||||||
|
intitulé: Création d'une formation
|
||||||
|
operation:
|
||||||
|
Accès à la page ScoDoc/[nom_dpt]/Scolarite/Notes/formation_create,
|
||||||
|
Remplir et soumettre le formulaire
|
||||||
|
resultat: la page sur laquelle on est dirigée contient un tableau avec la formation crée, dont un id avec titre_nom_formation
|
||||||
|
etat: *DeptCreated
|
||||||
|
page: *Notes
|
||||||
|
champs: "titre_" + acronyme
|
||||||
|
role: *AdminDPT
|
||||||
|
createur: Aurélien
|
||||||
|
test5:
|
||||||
|
intitulé: Changer le nom d'une formation
|
||||||
|
operation:
|
||||||
|
Accès à la page /ScoDoc/[nom_dpt]/Scolarite/Notes
|
||||||
|
Selectionner la formation à modifier en clickant sur son titre
|
||||||
|
Remplir et soumettre le formulaire
|
||||||
|
resultat: la page sur laquelle on est dirigée contient une class formation_descr
|
||||||
|
etat: *DeptCreated
|
||||||
|
page: *Notes
|
||||||
|
champs:
|
||||||
|
role: *AdminDPT
|
||||||
|
createur: Aurélien
|
||||||
|
test6:
|
||||||
|
intitulé: Création d'une formation avec le même nom qu'une autre
|
||||||
|
operation:
|
||||||
|
Accès à la page ScoDoc/[nom_dpt]/Scolarite/Notes/formation_create,
|
||||||
|
Remplir et soumettre le formulaire
|
||||||
|
resultat: la page sur laquelle on est dirigée contient un message d'erreur indiquant que le nom est dupliqué, la formation n'est pas créée
|
||||||
|
etat: *DeptCreated
|
||||||
|
page: *Notes
|
||||||
|
champs: errorMessage
|
||||||
|
role: *AdminDPT
|
||||||
|
createur: Aurélien
|
||||||
|
test7:
|
||||||
|
intitulé: Ajout d'une UE à la formation créée
|
||||||
|
operation:
|
||||||
|
Accès à la page de création d'UE dans la formation précédemment créée
|
||||||
|
Remplir et soumettre le formulaire
|
||||||
|
Soumettre le formulaire;
|
||||||
|
resultat: La page sur laquelle on est dirigée contient "Info Informatique"
|
||||||
|
etat: *DeptCreated
|
||||||
|
page: *Notes
|
||||||
|
champs:
|
||||||
|
role: *AdminDPT
|
||||||
|
createur: Aurélien
|
||||||
|
test8:
|
||||||
|
intitulé: Suppresion d'une formation
|
||||||
|
operation:
|
||||||
|
Accès à la page ScoDoc/[nom_dpt]/Scolarite/Notes/,
|
||||||
|
Supprimer chaque semestre qui compose cette formation,
|
||||||
|
Supprimer la formation
|
||||||
|
resultat: La formation disparait du tableau des formations
|
||||||
|
etat: *DeptCreated
|
||||||
|
page: *Notes
|
||||||
|
champs: errorMessage
|
||||||
|
role: *AdminDPT
|
||||||
|
createur: Aurélien
|
||||||
|
test9:
|
||||||
|
intitulé: Creer un étudiant
|
||||||
|
operation:
|
||||||
|
Scolarite/etudident_create_form
|
||||||
|
Remplir les champs et soumettre le formulaire
|
||||||
|
resultat: La page contient ficheEtud avec un h2 contenant M. Normal UnEtudiant
|
||||||
|
etat: *ProgramCreated
|
||||||
|
page: *Scolarite
|
||||||
|
champs:
|
||||||
|
role: *AdminDPT
|
||||||
|
createur: Aurélien
|
||||||
|
test10:
|
||||||
|
intitulé: Creer un étudiant avec le même nip qu'un autre
|
||||||
|
operation:
|
||||||
|
Scolarite/etudident_create_form
|
||||||
|
Remplir les champs et utiliser le même NIP qu'un autre étudiant et soumettre le formulaire
|
||||||
|
resultat: Redirection vers une page contenant COde étudiant dupliqué, l'étudiant n'est pas créé
|
||||||
|
etat: *ProgramCreated
|
||||||
|
page: *Scolarite
|
||||||
|
champs: titleError
|
||||||
|
role: [*AdminDPT,*Secretaire]
|
||||||
|
createur: Aurélien
|
||||||
|
test11:
|
||||||
|
intitulé: Modifier l'adresse d'un étudiant
|
||||||
|
operation:
|
||||||
|
Se rendre sur la fiche étudiante d'un étudiant avec l'aide de la recherche à l'id in-expnom(sidebar)
|
||||||
|
Clicker sur changer de coordonnées
|
||||||
|
Remplir le formulaire et le soumestre
|
||||||
|
resultat: L'élèment à l'id adresse_etudiant contient désormais les informations mise à jour.
|
||||||
|
etat: *ProgramCreated
|
||||||
|
page: *Scolarite
|
||||||
|
champs: adresse_etudiant
|
||||||
|
role: [*AdminDPT,*Secretaire]
|
||||||
|
createur: Aurélien
|
||||||
|
test12:
|
||||||
|
intitulé: Inscrire un étudiant à un semestre
|
||||||
|
operation: Rechercher l'étudiant et l'inscrire au semestre courant
|
||||||
|
resultat: La fiche etu de l'étudiant contient maintenant le semstre courant
|
||||||
|
etat: *ProgramCreated
|
||||||
|
page: *Scolarite
|
||||||
|
champs:
|
||||||
|
role: *Secretaire
|
||||||
|
createur: Aurélien
|
||||||
|
test14:
|
||||||
|
intitulé: Supprimer un étudiant
|
||||||
|
operation: Chercher l'étudiant, et utiliser le formulaire etudident_delete?etudid= en ajoutant l'euid de cette étudfiant
|
||||||
|
resultat: Cette étudiant est supprimé, aucun résultat n'apparait avec une recherche sur son nom
|
||||||
|
etat: *EtudiantCreated
|
||||||
|
page: *ficheEtud
|
||||||
|
champs:
|
||||||
|
role: [*AdminDPT,*Secretaire]
|
||||||
|
createur: Aurélien
|
||||||
|
test15:
|
||||||
|
intitulé: Trouver un étudiant
|
||||||
|
operation: Utiliser la barre latéral pour entrer le nom de l'étudiant
|
||||||
|
resultat: Redirection vers la fiche de l'étudiant en question
|
||||||
|
etat: *EtudiantCreated
|
||||||
|
page: *Absence
|
||||||
|
champs: in-expnom
|
||||||
|
role: [*AdminDPT,*Secretaire]
|
||||||
|
createur: Aurélien
|
||||||
|
test16:
|
||||||
|
intitulé: Creer une absence non justifiée
|
||||||
|
operation: Affecter une absence à un étudiant depuis sa fiche étudiant, et utiliser 'Ajouter' dans la barre latérale
|
||||||
|
resultat: La page absence de cet étudiant contient l'absence créée
|
||||||
|
etat: *EtudiantCreated
|
||||||
|
page: *Absence
|
||||||
|
champs:
|
||||||
|
role: *Secretaire
|
||||||
|
createur: Aurélien
|
||||||
|
test17:
|
||||||
|
intitulé: Creer une absence justifiée
|
||||||
|
operation: Affecter une absence à un étudiant depuis sa fiche étudiant, et utiliser 'Ajouter' dans la barre latérale, cocher est justifiée
|
||||||
|
resultat: La page absence de cet étudiant contient l'absence créée
|
||||||
|
etat: *EtudiantCreated
|
||||||
|
page: *Absence
|
||||||
|
champs:
|
||||||
|
role: *Secretaire
|
||||||
|
createur: Aurélien
|
||||||
|
test18:
|
||||||
|
intitulé: Justifier une absence
|
||||||
|
operation: Justifier une absence et la confirmer
|
||||||
|
resultat: Ces absences apparaissent comme justifiée sur la page des absences de cet étudiant
|
||||||
|
etat: *EtudiantCreated
|
||||||
|
page: *Absence
|
||||||
|
champs:
|
||||||
|
role: *Secretaire
|
||||||
|
createur: Aurélien
|
||||||
|
test19:
|
||||||
|
intitulé: Supprimer une absence
|
||||||
|
operation: Supprimer une absence d'un étudiant depuis sa fiche étudiant, et utiliser 'Supprimer' dans la barre latérale, remplir le formulaire avec les dates des absences à justifier
|
||||||
|
resultat: Ces absences apparaissent comme justifiée sur la page des absences de cet étudiant
|
||||||
|
etat: *EtudiantCreated
|
||||||
|
page: *Absence
|
||||||
|
champs:
|
||||||
|
role: *Secretaire
|
||||||
|
createur: Aurélien
|
||||||
|
test20:
|
||||||
|
intitulé: Vérifier qu'une matière existe
|
||||||
|
operation: Se rendre sur le semestre en cours correspondant depuis /Scolarité , controler si la matière en question est presente dans la liste des matières
|
||||||
|
resultat: La matière est présente
|
||||||
|
etat: *MatiereCreated
|
||||||
|
page: *Scolarite
|
||||||
|
champs: formsemestre_status_ue
|
||||||
|
role: *Testeur
|
||||||
|
createur: Aurélien
|
||||||
|
test21:
|
||||||
|
intitulé: Créer une interrogation
|
||||||
|
operation: Se rendre sur la matière de notre choix, ajouter une interogation, remplir le formulaire et le soumettre
|
||||||
|
resultat: L'interrogation apparait désormais dans le tableau récapitulatif de cette matière
|
||||||
|
etat: *MatiereCreated
|
||||||
|
page: Notes
|
||||||
|
champs:
|
||||||
|
role: *AdminDPT
|
||||||
|
createur: Aurélien
|
||||||
|
test22:
|
||||||
|
intitulé: Ajouter un enseignant sur un module
|
||||||
|
operation: Se rendre sur la matière de notre choix, clicker sur ajouter un enseignant, remplir le formulaire en recherchant l'enseignant voulu
|
||||||
|
resultat: Le nom de l'enseignant apparait désormais lorsqu'on se rends sur cette matière à coté d'"enseignants"
|
||||||
|
etat: *MatiereCreated
|
||||||
|
page: Notes
|
||||||
|
champs:
|
||||||
|
role: *AdminDPT
|
||||||
|
createur: Aurélien
|
||||||
|
test23:
|
||||||
|
intitulé: Entrer des notes pour une partie des élèves
|
||||||
|
operation: Se rendre sur la matière de notre choix, selectionner une interogation et entrer les notes pour une partie des élèves
|
||||||
|
resultat: ATT apparait désormais à coté de l'interrogation en question sur la page de la matières concernée
|
||||||
|
etat: *MatiereCreated
|
||||||
|
page: Notes
|
||||||
|
champs:
|
||||||
|
role: *Prof
|
||||||
|
createur: Aurélien
|
||||||
|
test24:
|
||||||
|
intitulé: Entrer des notes pour tout les élèves
|
||||||
|
operation: Se rendre sur la matière de notre choix, selectionner une interogation et entrer les notes pour chaque élève
|
||||||
|
resultat: La moyenne apparait désormais directement à côté de l'interrogation en question, les notes apparaissent dans le bulletin des élèves concernés
|
||||||
|
etat: *MatiereCreated
|
||||||
|
page:
|
||||||
|
champs:
|
||||||
|
role: *Prof
|
||||||
|
createur: Aurélien
|
||||||
|
test25:
|
||||||
|
intitulé: Signaler un élève excusé pour une intérogation
|
||||||
|
operation: Se rendre sur la matière de notre choix, selectionner une interogation et entrer "EXC" pour l'élève voulu
|
||||||
|
resultat: La moyenne apparait désormais directement à côté de l'interogation en question, un compteur montre le nombre d'élève excusé
|
||||||
|
etat: *MatiereCreated
|
||||||
|
page:
|
||||||
|
champs:
|
||||||
|
role: *Prof
|
||||||
|
createur: Aurélien
|
||||||
|
test26:
|
||||||
|
intitulé: Compléter les notes manquantes
|
||||||
|
operation: Se rendre sur la matière de notre choix, selectionner une interogation et entrer les notes manquantes
|
||||||
|
resultat: La moyenne apparait désormais directement à côté de l'interogation en question, celle ci n'est plus remplacée par "ATT"
|
||||||
|
etat: *MatiereCreated
|
||||||
|
page:
|
||||||
|
champs:
|
||||||
|
role: *Prof
|
||||||
|
createur: Aurélien
|
||||||
|
test27:
|
||||||
|
intitulé: Supprimer la note d'un étudiant
|
||||||
|
operation: Se rendre sur la matière de notre choix, selectionner une interogation et entrer "SUPPR" pour l'étudiant voulu
|
||||||
|
resultat: La moyenne n'apparait plus sur la page des matières, la note est supprimée de la fiche de l'étudiant concerné
|
||||||
|
etat: *MatiereCreated
|
||||||
|
page:
|
||||||
|
champs:
|
||||||
|
role: *Prof
|
||||||
|
createur: Aurélien
|
||||||
|
testX:
|
||||||
|
intitulé: Ajout d'une matière à l'UE créée
|
||||||
|
operation: Soumettre le formulaire d'ajout de matière
|
||||||
|
resultat: La page sur laquelle on est dirigée contient la classe notes_matiere_list et un de ses enfants contient Systeme
|
||||||
|
etat: *MatiereCreated
|
||||||
|
page: *Notes
|
||||||
|
champs:
|
||||||
|
role: *AdminDPT
|
||||||
|
createur: Aurélien
|
||||||
|
testX:
|
||||||
|
intitulé: Ajouter une session
|
||||||
|
operation: Verifier que la liste de formation est présente
|
||||||
|
Se rendre sur la page correspondante "Mise en place d'un semestre de formation" à la formation
|
||||||
|
Vérifier que grtcontent h2 existe et qu'il contient "Mise en place d'un semestre de formation""
|
||||||
|
Soumettre le formulaire après l'avoir rempli
|
||||||
|
resultat: La page sur laquelle on est dirigée contient une classe head_message avec nouveau semestre créé
|
||||||
|
etat: *ProgramCreated
|
||||||
|
page: *Notes
|
||||||
|
champs:
|
||||||
|
role: *AdminDPT
|
||||||
|
createur: Aurélien
|
||||||
|
testX:
|
||||||
|
intitulé: Générer les absences pour une journée
|
||||||
|
operation: Généner le récapitulatif des absences
|
||||||
|
resultat: La page générée contient les absences préalablement créée
|
||||||
|
etat: *EtudiantCreated
|
||||||
|
page: *Absence
|
||||||
|
champs:
|
||||||
|
role: *Secretaire
|
||||||
|
createur: Aurélien
|
||||||
|
testX:
|
||||||
|
intitulé: Export XML de la formation
|
||||||
|
operation: Génération de l'export XML, vérifier s'il contient les informations de la formations
|
||||||
|
resultat: Le xml généré contient les informations demandées
|
||||||
|
etat: *ProgramCreated
|
||||||
|
page: *Notes
|
||||||
|
champs:
|
||||||
|
role: *AdminDPT
|
||||||
|
createur: Aurélien
|
||||||
|
testX:
|
||||||
|
intitulé: Export JSON de la formation
|
||||||
|
operation: Génération de l'export JSON, vérifier s'il contient les informations de la formations
|
||||||
|
resultat: Le JSON généré contient les informations demandées
|
||||||
|
etat: *ProgramCreated
|
||||||
|
page: *Notes
|
||||||
|
champs:
|
||||||
|
role: *AdminDPT
|
||||||
|
createur: Aurélien
|
||||||
|
testX:
|
||||||
|
intitulé: Verifier la génération du récapitulatif
|
||||||
|
operation: Se rendre sur la page table récapitulative de la formation
|
||||||
|
resultat: La page contient toutes les UE et matière précédemment créées
|
||||||
|
etat: *ProgramCreated
|
||||||
|
page: *Notes
|
||||||
|
champs:
|
||||||
|
role: *AdminDPT
|
||||||
|
createur: Aurélien
|
||||||
|
testX:
|
||||||
|
intitulé: Décision recommandé de validation de semestre pour un etudiant assidu
|
||||||
|
operation: Selectionner la validation de semestre dans les opérations scolarité, séléctionner étudiant assidu et valider
|
||||||
|
resultat: L'état ATT apparait sur la fiche de l'étudiant concerné
|
||||||
|
etat: *ProgramCreated
|
||||||
|
page: *Notes
|
||||||
|
champs:
|
||||||
|
role: *Secretaire
|
||||||
|
createur: Aurélien
|
||||||
|
testX:
|
||||||
|
intitulé: Décision recommandé de validation de semestre pour un etudiant non assidu
|
||||||
|
operation: Selectionner la validation de semestre dans les opérations scolarité, séléctionner problème d'assiduité et valider
|
||||||
|
resultat: L'état ATT apparait sur la fiche de l'étudiant concerné et la mention (non ass.) apparait sur la page de parcours de l'étudiant
|
||||||
|
etat: *ProgramCreated
|
||||||
|
page: *Notes
|
||||||
|
champs:
|
||||||
|
role: *Secretaire
|
||||||
|
createur: Aurélien
|
||||||
|
testX:
|
||||||
|
intitulé: Effectuer la démission d'un étudiant
|
||||||
|
operation: Selectionner la demission dans les opérations scolarité, entrer une date et confirmer
|
||||||
|
resultat: La mention "Démission le xx" apparait sur la fiche de l'étudiant concerné
|
||||||
|
etat: *EtudiantCreated
|
||||||
|
page: *Scolarite
|
||||||
|
champs:
|
||||||
|
role: *Secretaire
|
||||||
|
createur: Aurélien
|
||||||
|
testX:
|
||||||
|
intitulé: Affecter des absences à un étudiant depuis la gestion des absences
|
||||||
|
operation: Selectionner la semaine concernée et cocher les cases correspondantes pour un étudiant
|
||||||
|
resultat: Le compteur d'absence de l'étudiant à été mis à jour
|
||||||
|
etat: *EtudiantCreated
|
||||||
|
page: *Scolarite
|
||||||
|
champs:
|
||||||
|
role: [*Secretaire, *Prof]
|
||||||
|
createur: Aurélien
|
||||||
|
testX:
|
||||||
|
intitulé: Créer une répartition
|
||||||
|
operation: Dans le menu modifier créer des groupes, rentrer le nom de la partition et clicker sur nouvelle partition
|
||||||
|
resultat: Le tableau contient une nouvelle ligne avec le nom de la partition préalablement rempli
|
||||||
|
etat: *ProgramCreated
|
||||||
|
page: *Notes
|
||||||
|
champs:
|
||||||
|
role: [*Secretaire, *AdminDPT]
|
||||||
|
createur: Aurélien
|
||||||
|
testX:
|
||||||
|
intitulé: Créer un groupe
|
||||||
|
operation: Dans le menu modifier/créer des groupes, clicker sur répartir à coté de la partition concernée, remplir groupName et appuyer sur créer groupe
|
||||||
|
resultat: Le groupe apprait dans la div groups
|
||||||
|
etat: *EtudiantCreated
|
||||||
|
page: *Notes
|
||||||
|
champs:
|
||||||
|
role: [*Secretaire, *AdminDPT]
|
||||||
|
createur: Aurélien
|
||||||
|
testX:
|
||||||
|
intitulé: Affecter des étudiants à un groupe
|
||||||
|
operation: Dans une répartition, déplacer des étudiants de étudiants sans groupe au groupe souhaité, enregister ces groupes
|
||||||
|
resultat: Le groupe (discretelink) apparait maintenant sur la fiche des étudiants correspondant
|
||||||
|
etat: *EtudiantCreated
|
||||||
|
page: *Notes
|
||||||
|
champs:
|
||||||
|
role: *Secretaire
|
||||||
|
createur: Aurélien
|
||||||
|
test25:
|
||||||
|
intitulé: Verifier le calcul des notes
|
||||||
|
operation:
|
||||||
|
resultat:
|
||||||
|
etat:
|
||||||
|
page:
|
||||||
|
champs:
|
||||||
|
role:
|
||||||
|
createur: Aurélien
|
||||||
|
test26:
|
||||||
|
intitulé: Ajouter un module optionnel
|
||||||
|
operation:
|
||||||
|
resultat:
|
||||||
|
etat:
|
||||||
|
page:
|
||||||
|
champs:
|
||||||
|
role:
|
||||||
|
createur: Aurélien
|
||||||
|
test27:
|
||||||
|
intitulé: Ajouter une note optionnelle
|
||||||
|
operation:
|
||||||
|
resultat:
|
||||||
|
etat:
|
||||||
|
page:
|
||||||
|
champs:
|
||||||
|
role:
|
||||||
|
createur: Aurélien
|
Binary file not shown.
BIN
__pycache__/setup.cpython-38.pyc
Normal file
BIN
__pycache__/setup.cpython-38.pyc
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user