From e6ba82b40979dbc33f87e0ee03c0aea10a5d4d7f Mon Sep 17 00:00:00 2001 From: Aurelien PLANCKE Date: Fri, 21 May 2021 16:29:45 +0200 Subject: [PATCH] reprise des tests avec des scripts --- 01_creation_departement_test.py | 45 +- 02_creation_formation_test.py | 82 ++- __pycache__/setup.cpython-37.pyc | Bin 437 -> 571 bytes geckodriver.log | 942 +++++++++++++++++++++++++++++++ scriptexecution.sh | 4 +- setup.py | 6 +- 6 files changed, 1041 insertions(+), 38 deletions(-) diff --git a/01_creation_departement_test.py b/01_creation_departement_test.py index d79e0e2..08588f8 100644 --- a/01_creation_departement_test.py +++ b/01_creation_departement_test.py @@ -1,6 +1,8 @@ +# coding: utf8 import unittest import time -from setup import SCODOC_ADMIN_ID,SCODOC_ADMIN_PASS,BASE_URL,NOM_DPT +import subprocess +from setup import SCODOC_ADMIN_ID,SCODOC_ADMIN_PASS,BASE_URL,NOM_DPT,LINK_SCODOC_SERVER,BASE_NOT_SECURED_URL from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select @@ -8,7 +10,9 @@ from selenium.webdriver.support.select import Select class PythonOrgSearch(unittest.TestCase): - nomDpt = "AurelienUS" + cmdProcess = ['./scriptCreationDepartement.sh', LINK_SCODOC_SERVER, 'TESTCREATEDPT'] + 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() @@ -17,7 +21,9 @@ class PythonOrgSearch(unittest.TestCase): + SCODOC_ADMIN_ID + ":" + SCODOC_ADMIN_PASS - + "@scodoc-dev-iutinfo.univ-lille.fr/force_admin_authentication" + + "@" + + BASE_NOT_SECURED_URL + + "force_admin_authentication" ) self.driver.get(BASE_URL) @@ -32,24 +38,33 @@ class PythonOrgSearch(unittest.TestCase): def test_create_departement(self): driver = self.driver driver.get(BASE_URL + "/scodoc_admin") - select = Select(driver.find_element_by_name("DeptId")) - select.select_by_visible_text("TESTDPT") - self.assertTrue(select.first_selected_option.text == "TESTDPT") - element = driver.find_element_by_name("DeptId") - element = driver.find_element_by_id("gtrcontent").find_element_by_tag_name("h6") - element.submit() - time.sleep(2) + select = Select(driver.find_element_by_id("CreateDept")) + select.select_by_visible_text("TESTCREATEDPT") + driver.find_element_by_name("DeptId").submit() + time.sleep(1) + driver.find_element_by_id("tf_submit").click() driver.get(BASE_URL) - self.assertTrue("TESTDPT" in driver.page_source) - - # def test_create_module(self): - # driver = self.driver - # element = driver.find_element_by_name("TESTDPT") + self.assertTrue("TESTCREATEDPT" in driver.page_source) + #Test : Suppresion d'un département, puis lancement d'un script coté serveur pour supprimer sa base de données + # @expected : Le département n'apparait plus sur la page d'accueil + def test_delete_departement(self): + driver = self.driver + driver.get(BASE_URL + "/scodoc_admin") + select = Select(driver.find_element_by_id("DeleteDept")) + select.select_by_visible_text("TESTCREATEDPT") + driver.find_element_by_id("DeleteDept").submit() + driver.get(BASE_URL) + self.assertTrue("TESTCREATEDPT" not in driver.page_source) + cmdProcess = ['./scriptDeleteDepartement.sh', LINK_SCODOC_SERVER, 'TESTCREATEDPT'] + process = subprocess.Popen(cmdProcess) + process.wait() # ferme la fenetre à chaque fin de test + def tearDown(self): self.driver.close() + if __name__ == "__main__": unittest.main() \ No newline at end of file diff --git a/02_creation_formation_test.py b/02_creation_formation_test.py index 56140a3..707d71b 100644 --- a/02_creation_formation_test.py +++ b/02_creation_formation_test.py @@ -1,21 +1,28 @@ +# coding: utf8 import unittest import time -from setup import SCODOC_ADMIN_ID,SCODOC_ADMIN_PASS,BASE_URL,NOM_DPT +import subprocess +from setup import SCODOC_ADMIN_ID,SCODOC_ADMIN_PASS,BASE_URL,NOM_DPT, LINK_SCODOC_SERVER from selenium import webdriver +from selenium.webdriver.support import expected_conditions as EC +from selenium.webdriver.support.ui import Select, WebDriverWait +from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.webdriver.support.select import Select -SCODOC_ADMIN_ID = "admin" -SCODOC_ADMIN_PASS = "root_pass_42" -NOM_DPT = "AurelienUS" -baseURL = "https://scodoc-dev-iutinfo.univ-lille.fr" - +URL = BASE_URL + NOM_DPT + "/Scolarite" +ACRONYME_FORMATION = "FormationTEST" class PythonOrgSearch(unittest.TestCase): + cmdProcess = ['./scriptCreationDepartement.sh', LINK_SCODOC_SERVER, NOM_DPT] + 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.url = '' self.driver = webdriver.Firefox() + self.wait = WebDriverWait(self.driver, 10) self.driver.get( "https://" + SCODOC_ADMIN_ID @@ -23,23 +30,60 @@ class PythonOrgSearch(unittest.TestCase): + SCODOC_ADMIN_PASS + "@scodoc-dev-iutinfo.univ-lille.fr/force_admin_authentication" ) - self.driver.get(baseURL + "/ScoDoc") + self.driver.get(BASE_URL + "/ScoDoc") # Test Creer une formation - # @expected : - def test_create_formation(self): + # @expected : La formation se trouve dans le tableau de la liste des formations + def test_011_create_formation(self): driver = self.driver - url = baseURL + "/ScoDoc/" + NOM_DPT + "/Scolarite/Notes/formation_create" + driver.get(URL) + driver.find_element_by_id("ProgrammesLink").click() + self.url = driver.current_url + driver.find_element_by_id("create_formation_link").click() + self.wait.until(EC.url_changes(URL)) + driver.find_element_by_id("tf_acronyme").send_keys(ACRONYME_FORMATION) + driver.find_element_by_id("tf_titre").send_keys("TEST") + driver.find_element_by_id("tf_titre_officiel").send_keys("formation de test") + driver.find_element_by_id("tf_submit").click() + driver.get(self.url) + formations = driver.find_elements_by_class_name("acronyme") + textElementAcronyme = [] + for formation in formations: + textElementAcronyme.append(formation.text) + self.assertTrue(ACRONYME_FORMATION in textElementAcronyme) + + def test_012_create_formation_with_same_name(self): + driver = self.driver + url = self.url driver.get(url) - select = Select(driver.find_element_by_name("DeptId")) - select.select_by_visible_text(NOM_DPT) - self.assertTrue(select.first_selected_option.text == NOM_DPT) - element = driver.find_element_by_name("DeptId") - element = driver.find_element_by_id("gtrcontent").find_element_by_tag_name("h6") - element.submit() - time.sleep(2) - driver.get(baseURL + "/ScoDoc") - self.assertTrue("TESTDPT" in driver.page_source) + idEditFormation = "edit_Formation_" + ACRONYME_FORMATION + driver.find_element_by_id(idEditFormation).click() + self.wait.until(EC.url_changes(URL)) + driver.find_element_by_id("tf_acronyme").send_keys(ACRONYME_FORMATION + ACRONYME_FORMATION) + driver.find_element_by_id("tf_submit").click() + driver.get(self.url) + formations = driver.find_elements_by_class_name(" acronyme") + textElementAcronyme = [] + for formation in formations: + textElementAcronyme.append(formation.text) + self.assertTrue(ACRONYME_FORMATION + ACRONYME_FORMATION in textElementAcronyme) + + def test_020_delete_formation(self): + driver = self.driver + url = self.url + driver.get(self.url) + driver.find_element_by_id("ProgrammesLink").click() + url = driver.current_url + idButtonDelete = "delete_Formation_"+ACRONYME_FORMATION + driver.find_element_by_id(idButtonDelete).click() + self.wait.until(EC.url_changes(url)) + driver.find_element_by_xpath("//input[@value='Supprimer cette formation']").click() + driver.get(self.url) + try: + driver.find_element_by_id(idButtonDelete) + self.assertTrue(False) + except NoSuchElementException: + self.assertTrue(True) # def test_create_module(self): # driver = self.driver diff --git a/__pycache__/setup.cpython-37.pyc b/__pycache__/setup.cpython-37.pyc index 435c7780a990c40db64603f76c7304250b3e6f46..9ef4019b72f22155de06a4923c2b38a418b6c9f7 100644 GIT binary patch delta 294 zcmdnWyqksBiI)> zNAW=goIPCKKnetq`5+aygnT^xyyKz5!LC7Ju0gj%oE(E)u2Vr<)@aE>KEiB<|SvRCh9wt7NsVZ>IWz1r{pJx0Da(` llbM=VqF)SDRiIZ;d5gm)H$SB`C)JJ-XjrijkYHg%hX9oiQrrLl delta 209 zcmdnZvXzo#S2og5y11Zt){=0~~{cZ}C9|oIPCKKnetq`5+Z58HzZ8 z)`E#&y80RUxvBbzP|Nh4fQ-aa{esGpjQqUd)ST43%+g%_;?$DT0=