import unittest import time from setup import SCODOC_ADMIN_ID,SCODOC_ADMIN_PASS,BASE_URL,NOM_DPT import urllib.parse as urlparse from urllib.parse import parse_qs from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import Select, WebDriverWait from selenium.webdriver.support.select import Select SCODOC_ADMIN_ID = "admin" SCODOC_ADMIN_PASS = "root_pass_42" nomDPT = "AurelienUS" nomEtu = "UnAutreEtudiant" prenomEtu = "Normal" nip = "11122234" domicile = "50 rue de la marmite" codepostaldomicile = "59000" paysdomicile = "Lille" class PythonOrgSearch(unittest.TestCase): # Permet de se connecter et se remettre sur la page d'accueil avant chaque test def setUp(self): self.driver = webdriver.Firefox() 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-dev-iutinfo.univ-lille.fr/ScoDoc") # 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_01_creation_etudiant(self): driver = self.driver url = ( "https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/" + NOM_DPT + "/Scolarite/etudident_create_form" ) driver.get(url) driver.find_element_by_id("tf_nom").send_keys(nomEtu) driver.find_element_by_id("tf_prenom").send_keys(prenomEtu) driver.find_element_by_id("tf_annee").send_keys("2021") driver.find_element_by_id("tf_code_nip").send_keys(nip) driver.find_element_by_name("dont_check_homonyms:list").click() driver.find_element_by_id("tf_submit").click() time.sleep(1) self.assertTrue("M. " + prenomEtu + " " + nomEtu.upper() 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_02_creation_etudiant_avec_meme_nip(self): driver = self.driver url = ( "https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/" + nomDPT + "/Scolarite/etudident_create_form" ) driver.get(url) driver.find_element_by_id("tf_nom").send_keys(nomEtu) driver.find_element_by_id("tf_prenom").send_keys(prenomEtu) driver.find_element_by_id("tf_annee").send_keys("2021") driver.find_element_by_id("tf_code_nip").send_keys(nip) driver.find_element_by_name("dont_check_homonyms:list").click() driver.find_element_by_id("tf_submit").click() time.sleep(1) self.assertTrue( "Code étudiant (code_nip) dupliqué !" in driver.find_element_by_id("titleError").text ) # Test Modification de l'adresse étudiant # expected : La nouvelle adresse est mise à jour sur la page information de l'étudiant def test_03_modification_adresse_etudiant(self): driver = self.driver url = ( "https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/" + nomDPT + "/Scolarite/search_etud_in_dept" ) driver.get(url) element = driver.find_element_by_name("expnom") element.send_keys(nomEtu) element.submit() time.sleep(1) driver.find_element_by_id("changerCoordonneesEtudiant").click() time.sleep(1) driver.find_element_by_id("tf_domicile").send_keys(domicile) driver.find_element_by_id("tf_codepostaldomicile").send_keys(codepostaldomicile) driver.find_element_by_id("tf_paysdomicile").send_keys(paysdomicile) driver.find_element_by_id("tf_submit").click() time.sleep(1) self.assertTrue( codepostaldomicile in driver.find_element_by_id("champAdresse").text ) # Test Inscription d'un étudiant dans un semestre # @expected : def test_04_inscription_etudiant(self): driver = self.driver url = ( "https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/" + nomDPT + "/Scolarite/search_etud_in_dept" ) driver.get(url) element = driver.find_element_by_id("searchEtud") element.send_keys(nomEtu) element.submit() time.sleep(1) driver.find_element_by_id("inscription_Etudiant").click() time.sleep(1) self.assertTrue("

Choisir un semestre:

" in driver.page_source) driver.find_elements_by_id("semestreInscription")[0].click() time.sleep(1) driver.find_element_by_xpath("//input[@value='Inscrire']").click() self.wait.until(EC.url_changes(url)) self.assertTrue("Inscrire" in driver.page_source) time.sleep(1) # Test Supprime un étudiant # @expected : Lors d'une recherche sur le nom de l'étudiant, aucun résultat apparait def test_05_suppresion_etudiant(self): driver = self.driver urlRecherche = ( "https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/" + nomDPT + "/Scolarite/search_etud_in_dept" ) driver.get(urlRecherche) element = driver.find_element_by_name("expnom") element.send_keys(nomEtu) element.submit() time.sleep(1) etudid = driver.find_element_by_id("euid") url = ( "https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/" + nomDPT + "/Scolarite/etudident_delete?etudid=" + etudid.text ) driver.get(url) time.sleep(1) driver.find_element_by_xpath( "//input[@value='Supprimer définitivement cet étudiant']" ).click() driver.get(urlRecherche) element = driver.find_element_by_name("expnom") element.send_keys(nomEtu) element.submit() time.sleep(1) try: element = driver.find_element_by_id("titleNoResult") self.assertTrue("Aucun résultat" in element.text) except: self.assertFalse(False) # ferme la fenetre def tearDown(self): self.driver.close() if __name__ == "__main__": unittest.main()