ajout de commentaire

This commit is contained in:
Aurélien Plancke 2021-05-06 08:32:30 +02:00
parent 9bdaa9e6eb
commit 918836b312
7 changed files with 1786 additions and 61 deletions

View File

@ -4,45 +4,54 @@ from selenium import webdriver
from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.select import Select from selenium.webdriver.support.select import Select
SCODOC_ADMIN_ID = 'admin'
SCODOC_ADMIN_PASS = 'root_pass_42' SCODOC_ADMIN_ID = "admin"
SCODOC_ADMIN_PASS = "root_pass_42"
class PythonOrgSearch(unittest.TestCase): class PythonOrgSearch(unittest.TestCase):
nomDpt = "AurelienUS" nomDpt = "AurelienUS"
#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):
self.driver = webdriver.Firefox() self.driver = webdriver.Firefox()
self.driver.get("https://"+SCODOC_ADMIN_ID+":"+SCODOC_ADMIN_PASS + "@scodoc-dev-iutinfo.univ-lille.fr/force_admin_authentication") self.driver.get(
"https://"
+ SCODOC_ADMIN_ID
+ ":"
+ SCODOC_ADMIN_PASS
+ "@scodoc-dev-iutinfo.univ-lille.fr/force_admin_authentication"
)
self.driver.get("https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc") self.driver.get("https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc")
#Verifie si le "bonjour admin" (signifiant la connexion réussie) est présent # Test : Verification de la connexion admin effective
# @expected : "Bonjour admin" est présent sur la page d'accueil
def test_connexion_admin(self): def test_connexion_admin(self):
driver = self.driver driver = self.driver
self.assertTrue("admin" in driver.page_source) self.assertTrue("admin" in driver.page_source)
# Test : Creer un département
#Creer un département et vérifie qu'il est bien présent sur la page d'accueil # @expected : Le département est présent sur la page d'accueil
def test_create_departement(self): def test_create_departement(self):
driver = self.driver driver = self.driver
driver.get("https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/scodoc_admin") driver.get("https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/scodoc_admin")
select = Select(driver.find_element_by_name('DeptId')) select = Select(driver.find_element_by_name("DeptId"))
select.select_by_visible_text('TESTDPT') select.select_by_visible_text("TESTDPT")
self.assertTrue(select.first_selected_option.text == 'TESTDPT') self.assertTrue(select.first_selected_option.text == "TESTDPT")
element = driver.find_element_by_name('DeptId') element = driver.find_element_by_name("DeptId")
element = driver.find_element_by_id('gtrcontent').find_element_by_tag_name('h6') element = driver.find_element_by_id("gtrcontent").find_element_by_tag_name("h6")
element.submit() element.submit()
time.sleep(2) time.sleep(2)
driver.get("https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc") driver.get("https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc")
self.assertTrue("TESTDPT" in driver.page_source) self.assertTrue("TESTDPT" in driver.page_source)
#def test_create_module(self): # def test_create_module(self):
# driver = self.driver # driver = self.driver
# element = driver.find_element_by_name("TESTDPT") # element = driver.find_element_by_name("TESTDPT")
# ferme la fenetre à chaque fin de test
#ferme la fenetre à chaque fin de test
def tearDown(self): def tearDown(self):
self.driver.close() self.driver.close()
if __name__ == "__main__": if __name__ == "__main__":
unittest.main() unittest.main()

View File

@ -34,6 +34,7 @@ class PythonOrgSearch(unittest.TestCase):
self.driver.get("https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc") self.driver.get("https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc")
# Test : creer un etudiant et verifie si sa fiche etudiante est creee # Test : creer un etudiant et verifie si sa fiche etudiante est creee
# @expected : A la soumission du formulaire on retrouve la fiche d'information avec le nip (unique) dans la page, on a également un resultat en recherchant l'étudiant
def test_creation_etudiant(self): def test_creation_etudiant(self):
driver = self.driver driver = self.driver
url = ( url = (
@ -52,6 +53,8 @@ class PythonOrgSearch(unittest.TestCase):
self.assertTrue("M. " + prenomEtu + " " + nomEtu.upper() in driver.page_source) self.assertTrue("M. " + prenomEtu + " " + nomEtu.upper() in driver.page_source)
self.assertTrue(nip in driver.page_source) self.assertTrue(nip in driver.page_source)
# Test : Creer un étudiant avec un nip qui est déjà présent dans la base Scodoc
# @expected : La création mène à une page qui affiche "code étudiant dupliqué", l'étudiant n'est pas créé
def test_creation_etudiant_avec_meme_nip(self): def test_creation_etudiant_avec_meme_nip(self):
driver = self.driver driver = self.driver
url = ( url = (
@ -71,6 +74,8 @@ class PythonOrgSearch(unittest.TestCase):
"<h3>Code étudiant (code_nip) dupliqué !</h3>" in driver.page_source "<h3>Code étudiant (code_nip) dupliqué !</h3>" in driver.page_source
) )
# Test Modification de l'adresse étudiant
# expected : La nouvelle adresse est mise à jour sur la page information de l'étudiant
def test_modification_adresse_etudiant(self): def test_modification_adresse_etudiant(self):
driver = self.driver driver = self.driver
url = ( url = (
@ -92,6 +97,8 @@ class PythonOrgSearch(unittest.TestCase):
time.sleep(1) time.sleep(1)
self.assertTrue("Adresse :" in driver.page_source) self.assertTrue("Adresse :" in driver.page_source)
# Test Inscription d'un étudiant dans un semestre
# @expected :
def test_inscription_etudiant(self): def test_inscription_etudiant(self):
driver = self.driver driver = self.driver
url = ( url = (
@ -114,7 +121,8 @@ class PythonOrgSearch(unittest.TestCase):
self.assertTrue("Inscrire" in driver.page_source) self.assertTrue("Inscrire" in driver.page_source)
time.sleep(1) time.sleep(1)
# supprime un étudiant et vérifie s'il est bien supprimé # Test Supprime un étudiant
# @expected : Lors d'une recherche sur le nom de l'étudiant, aucun résultat apparait
def test_suppresion_etudiant(self): def test_suppresion_etudiant(self):
driver = self.driver driver = self.driver
urlRecherche = ( urlRecherche = (

View File

@ -7,25 +7,40 @@ from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select, WebDriverWait from selenium.webdriver.support.ui import Select, WebDriverWait
from selenium.webdriver.support.select import Select from selenium.webdriver.support.select import Select
SCODOC_ADMIN_ID = 'admin'
SCODOC_ADMIN_PASS = 'root_pass_42' SCODOC_ADMIN_ID = "admin"
SCODOC_ADMIN_PASS = "root_pass_42"
nomDPT = "AurelienUS" nomDPT = "AurelienUS"
nomEtu = "UnAutreEtudiant" nomEtu = "UnAutreEtudiant"
prenomEtu = "Normal" prenomEtu = "Normal"
oldnip = "11122234" oldnip = "11122234"
newnip = "12345678" newnip = "12345678"
eid = "EID1" eid = "EID1"
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):
self.driver = webdriver.Firefox() self.driver = webdriver.Firefox()
self.wait = WebDriverWait(self.driver,10) self.wait = WebDriverWait(self.driver, 10)
self.driver.get("https://"+SCODOC_ADMIN_ID+":"+SCODOC_ADMIN_PASS + "@scodoc-dev-iutinfo.univ-lille.fr/force_admin_authentication") self.driver.get(
"https://"
+ SCODOC_ADMIN_ID
+ ":"
+ SCODOC_ADMIN_PASS
+ "@scodoc-dev-iutinfo.univ-lille.fr/force_admin_authentication"
)
self.driver.get("https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc") self.driver.get("https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc")
#Test changer les données d'un étudiant # Test changer les données d'un étudiant
# @expected : Le nip sur la page informations de l'étudiant est mis à jour
def test_changement_info_etudiant(self): def test_changement_info_etudiant(self):
url = "https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/"+nomDPT+"/Scolarite/etudident_edit_form?etudid="+eid url = (
"https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/"
+ nomDPT
+ "/Scolarite/etudident_edit_form?etudid="
+ eid
)
driver = self.driver driver = self.driver
driver.get(url) driver.get(url)
driver.find_element_by_id("tf_code_nip").clear() driver.find_element_by_id("tf_code_nip").clear()
@ -34,9 +49,11 @@ class PythonOrgSearch(unittest.TestCase):
self.wait.until(EC.url_changes(url)) self.wait.until(EC.url_changes(url))
time.sleep(5) time.sleep(5)
self.assertTrue(newnip in driver.page_source) self.assertTrue(newnip in driver.page_source)
#ferme la fenetre
# ferme la fenetre
def tearDown(self): def tearDown(self):
self.driver.close() self.driver.close()
if __name__ == "__main__": if __name__ == "__main__":
unittest.main() unittest.main()

View File

@ -43,7 +43,8 @@ class PythonOrgSearch(unittest.TestCase):
element.send_keys(nomEtu) element.send_keys(nomEtu)
element.submit() element.submit()
# Test : creer une absence et verifie si sa fiche étudiante est mise à jour avec le nombre d'absence correspondant # Test : creer une absence non justifiée
# @expected : La fiche étudiante est incrémentée avec le nombre d'absence injustifiée correspondant
def test_ajout_absence_non_justifiee(self): def test_ajout_absence_non_justifiee(self):
driver = self.driver driver = self.driver
driver.find_element_by_link_text("Ajouter").click() driver.find_element_by_link_text("Ajouter").click()
@ -63,6 +64,8 @@ class PythonOrgSearch(unittest.TestCase):
# driver.find_element_by_link_text("Liste").click() # driver.find_element_by_link_text("Liste").click()
# self.assertTrue("2 absences non justifiées:" in driver.page_source) # self.assertTrue("2 absences non justifiées:" in driver.page_source)
# Test pour ajouter deux absences justifiées
# @expected : La fiche d'information de l'étudiant concerné à son compteur d'absence augmenté de 2
def test_ajout_absence_justifiee(self): def test_ajout_absence_justifiee(self):
driver = self.driver driver = self.driver
driver.find_element_by_link_text("Ajouter").click() driver.find_element_by_link_text("Ajouter").click()
@ -80,6 +83,8 @@ class PythonOrgSearch(unittest.TestCase):
# driver.find_element_by_link_text("Liste").click() # driver.find_element_by_link_text("Liste").click()
# self.assertTrue("2 absences justifiées:" in driver.page_source) # self.assertTrue("2 absences justifiées:" in driver.page_source)
# Test Justification d'une absence non justifiée
# @expected : Le champs des absences non justifiées diminue et celui des justifiés augmente du nombre d'absence
def test_ajout_justification(self): def test_ajout_justification(self):
driver = self.driver driver = self.driver
driver.find_element_by_link_text("Justifier").click() driver.find_element_by_link_text("Justifier").click()
@ -98,6 +103,8 @@ class PythonOrgSearch(unittest.TestCase):
# self.assertTrue("4 absences justifiées:" in driver.page_source) # self.assertTrue("4 absences justifiées:" in driver.page_source)
# self.assertTrue("absences non justifiées:" not in driver.page_source) # self.assertTrue("absences non justifiées:" not in driver.page_source)
# Test Suppression des absences pour un élève
# @expected : Les compteurs d'absences sont remplacés par "Pas d'absences"
def test_supprimer_absence(self): def test_supprimer_absence(self):
driver = self.driver driver = self.driver
driver.find_element_by_link_text("Supprimer").click() driver.find_element_by_link_text("Supprimer").click()

View File

@ -20,27 +20,32 @@ 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):
self.driver = webdriver.Firefox() self.driver = webdriver.Firefox()
self.url = (
"https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/" + nomDPT + "/Scolarite"
)
self.wait = WebDriverWait(self.driver, 10) self.wait = WebDriverWait(self.driver, 10)
self.driver.get("https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/") self.driver.get("https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/")
self.driver.find_element_by_id("name").send_keys(SCODOC_ID) self.driver.find_element_by_id("name").send_keys(SCODOC_ID)
self.driver.find_element_by_id("password").send_keys(SCODOC_PASS) self.driver.find_element_by_id("password").send_keys(SCODOC_PASS)
self.driver.find_element_by_id("submit").click() self.driver.find_element_by_id("submit").click()
# Test : Vérifie s'il y a un semestre en cours
# @expected : La class listesems n'est pas vide et contient "Session en cours"
def test_01semestre_en_cours(self): def test_01semestre_en_cours(self):
driver = self.driver driver = self.driver
driver.get( url = self.url
"https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/" + nomDPT + "/Scolarite" 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
) )
# Test : Vérifie si une matière existe
# @expected : Le nom de la matière est présent dans le semestre préalablement testé
def test_02matiere_existante(self): def test_02matiere_existante(self):
driver = self.driver driver = self.driver
driver.get( url = self.url
"https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/" + nomDPT + "/Scolarite" driver.get(url)
)
driver.find_element_by_link_text("DUT Informatique semestre 4").click() driver.find_element_by_link_text("DUT Informatique semestre 4").click()
time.sleep(1) time.sleep(1)
try: try:
@ -49,8 +54,11 @@ class PythonOrgSearch(unittest.TestCase):
except NoSuchElementException: except NoSuchElementException:
self.assertFalse(False) self.assertFalse(False)
# Test : Ajout d'un enseignant comme résponsable d'un module
# @expected : Le nom de l'enseignant apparait désormais sur la page d'information du module
def test_03ajout_enseignant_sur_module(self): def test_03ajout_enseignant_sur_module(self):
driver = self.driver driver = self.driver
url = self.url
self.driver.get( self.driver.get(
"https://" "https://"
+ SCODOC_ADMIN_ID + SCODOC_ADMIN_ID
@ -58,9 +66,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( driver.get(url)
"https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/" + nomDPT + "/Scolarite"
)
driver.find_element_by_link_text("DUT Informatique semestre 4").click() 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)
@ -72,11 +78,12 @@ class PythonOrgSearch(unittest.TestCase):
self.assertTrue("Enseignants du" in driver.page_source) self.assertTrue("Enseignants du" in driver.page_source)
self.assertTrue(SCODOC_ID in driver.page_source) self.assertTrue(SCODOC_ID in driver.page_source)
# Test Vérifie si une interrogation existe sur un module
# @expected "Module" est présent dans le "formsemetre"
def test_04interro_existante(self): def test_04interro_existante(self):
driver = self.driver driver = self.driver
driver.get( url = self.url
"https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/" + nomDPT + "/Scolarite" driver.get(url)
)
driver.find_element_by_link_text("DUT Informatique semestre 4").click() 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)
@ -84,51 +91,69 @@ class PythonOrgSearch(unittest.TestCase):
"Module" in driver.find_element_by_class_name("formsemestre").text "Module" in driver.find_element_by_class_name("formsemestre").text
) )
# Test Entree des notes pour le premier étudiant inscrit à un module
# @expected : "saisir note" est remplacé par "afficher" sur la page d'information de l'interrogation concernée
def test_05entree_note(self): def test_05entree_note(self):
driver = self.driver driver = self.driver
driver.get( url = self.url
"https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/" + nomDPT + "/Scolarite" driver.get(url)
)
driver.find_element_by_link_text("DUT Informatique semestre 4").click() 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)
driver.find_element_by_link_text("saisir notes").click() driver.find_element_by_class_name("notes_img").click()
time.sleep(1) time.sleep(1)
elements = driver.find_elements_by_class_name("note") element = driver.find_element_by_class_name("note")
for element in elements: element.send_keys("12")
element.send_keys("12") driver.find_element_by_id("formnotes_submit").click()
time.sleep(5) self.wait.until(EC.url_changes(url))
self.assertTrue(
driver.find_element_by_link_text("afficher").text in driver.page_source
)
# Test : Ajoute les notes manquante poru les étudiants concernés dans une interrogation
# @expected : Tout les étudiants on une note
def test_06ajout_note_incomplete(self): def test_06ajout_note_incomplete(self):
driver = self.driver driver = self.driver
driver.get( url = self.url
"https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/" + nomDPT + "/Scolarite" driver.get(url)
)
driver.find_element_by_link_text("DUT Informatique semestre 4").click() 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)
driver.find_element_by_xpath( driver.find_element_by_class_name("notes_img").click()
"//input[@title='Saisie des notes' and @type='image']" elements = driver.find_elements_by_class_name("note")
).click() for element in elements:
if not element.text:
element.send_keys(15)
time.sleep(5) time.sleep(5)
# Test : Suppresion des notes pour tout les étudiants concernés dans une interrogation
# @expected : La moyenne ne s'affiche plus, "afficher" disparait de la page d'information de l'interrogation
def test_07suppression_note(self): def test_07suppression_note(self):
driver = self.driver driver = self.driver
driver.get( url = self.url
"https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/" + nomDPT + "/Scolarite" driver.get(url)
)
driver.find_element_by_link_text("DUT Informatique semestre 4").click() 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)
driver.find_element_by_link_text("saisir notes").click() driver.find_element_by_class_name("notes_img").click()
time.sleep(1) time.sleep(1)
elements = driver.find_elements_by_class_name("note") elements = driver.find_elements_by_class_name("note")
for element in elements: for element in elements:
element.send_keys("12") element.clear()
time.sleep(5) element.send_keys("SUPR")
driver.find_element_by_id("formnotes_submit").click()
self.wait.until(EC.url_changes(url))
try:
driver.find_element_by_link_text("afficher")
self.assertFalse(False)
except NoSuchElementException:
self.assertTrue(True)
# Test : Suppression d'un enseignant responsable d'un module
# @expected : L'enseignant n'apparait plus comme responsable dans ce module
def test_08suppression_enseignant_sur_module(self): def test_08suppression_enseignant_sur_module(self):
driver = self.driver driver = self.driver
url = self.url
self.driver.get( self.driver.get(
"https://" "https://"
+ SCODOC_ADMIN_ID + SCODOC_ADMIN_ID
@ -136,9 +161,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( driver.get(url)
"https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/" + nomDPT + "/Scolarite"
)
driver.find_element_by_link_text("DUT Informatique semestre 4").click() 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)

File diff suppressed because it is too large Load Diff