import unittest import time import urllib.parse as urlparse from setup import SCODOC_ADMIN_ID, SCODOC_ADMIN_PASS, BASE_URL, NOM_DPT 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 URL = BASE_URL + NOM_DPT + "/Scolarite" class PythonOrgSearch(unittest.TestCase): cmdProcess = ["./scriptCreationDepartement.sh", LINK_SCODOC_SERVER, NOM_DPT] process = subprocess.Popen(cmdProcess) process.wait() cmdProcess = [ "./scriptExecution.sh", LINK_SCODOC_SERVER, NOM_DPT, "test_scenario2_formation.py", ] process = subprocess.Popen(cmdProcess) process.wait() # 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 + "@" + BASE_NOT_SECURED_URL + "force_admin_authentication" ) global URL self.driver.get(URL) driver = self.driver driver.implicitly_wait(10) url = BASE_URL + NOM_DPT + "/Scolarite/Absences/search_etud_in_dept" driver.get(url) element = driver.find_element_by_name("expnom") element.send_keys(nomEtu) element.submit() # 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): driver = self.driver driver.find_element_by_link_text("Ajouter").click() driver.find_element_by_name("datedebut").send_keys(dateDebutAbsenceNonJustifiee) driver.find_element_by_id("butsubmit").submit() time.sleep(1) self.assertTrue( "Ajout de 2 absences NON justifiées" in driver.page_source ) driver = self.driver driver.find_element_by_link_text("Liste").click() self.assertTrue("2 absences non justifiées:" in driver.page_source) # def test_modification_liste_absence_non_justifiee(self): # driver = self.driver # driver.find_element_by_link_text("Liste").click() # 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): driver = self.driver driver.find_element_by_link_text("Ajouter").click() driver.find_element_by_name("datedebut").send_keys(dateDebutAbsenceJustifiee) driver.find_element_by_name("estjust").click() driver.find_element_by_id("butsubmit").submit() time.sleep(1) self.assertTrue("Ajout de 2 absences justifiées" in driver.page_source) driver = self.driver driver.find_element_by_link_text("Liste").click() self.assertTrue("2 absences justifiées:" in driver.page_source) # def test_modification_liste_absence_justifiee(self): # driver = self.driver # driver.find_element_by_link_text("Liste").click() # 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): driver = self.driver driver.find_element_by_link_text("Justifier").click() driver.find_element_by_name("datedebut").send_keys(dateDebutAbsenceJustifiee) driver.find_element_by_name("description").send_keys("Un test selenium") driver.find_element_by_xpath("//input[@value='Envoyer']").click() self.assertTrue("Ajout de 2 justifications" in driver.page_source) driver = self.driver driver.find_element_by_link_text("Liste").click() self.assertTrue("2 absences justifiées:" in driver.page_source) self.assertTrue("absences non justifiées:" in driver.page_source) # def test_modification_liste_ajout_justification(self): # driver = self.driver # driver.find_element_by_link_text("Liste").click() # self.assertTrue("4 absences justifiées:" 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): driver = self.driver driver.find_element_by_link_text("Supprimer").click() driver.find_element_by_name("datedebut").send_keys(dateDebutAbsenceJustifiee) driver.find_element_by_xpath("//input[@value='Supprimer les absences']").click() self.assertTrue("Annulation sur 2 demi-journées " in driver.page_source) driver = self.driver driver.find_element_by_link_text("Supprimer").click() driver.find_element_by_name("datedebut").send_keys(dateDebutAbsenceNonJustifiee) driver.find_element_by_xpath("//input[@value='Supprimer les absences']").click() driver = self.driver driver.find_element_by_link_text("Liste").click() self.assertTrue("Pas d'absences justifiées" in driver.page_source) self.assertTrue("Pas d'absences non justifiées" in driver.page_source) # def test_modification_liste_supression_absence(self): # driver = self.driver # driver.find_element_by_link_text("Liste").click() # self.assertTrue("2 absences justifiées:" in driver.page_source) # self.assertTrue("absences non justifiées:" not in driver.page_source) # ferme la fenetre def tearDown(self): self.driver.close() if __name__ == "__main__": unittest.main()