2021-04-21 13:28:58 +02:00
import unittest
import time
2021-05-26 17:09:28 +02:00
from setup import SCODOC_ADMIN_ID , SCODOC_ADMIN_PASS , BASE_URL , NOM_DPT
2021-04-21 13:28:58 +02:00
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
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
2021-05-06 08:32:30 +02:00
# @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
2021-05-06 20:28:22 +02:00
def test_01_creation_etudiant ( self ) :
2021-04-21 13:28:58 +02:00
driver = self . driver
url = (
" https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/ "
2021-05-12 14:49:00 +02:00
+ NOM_DPT
2021-04-21 13:28:58 +02:00
+ " /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 )
2021-05-06 08:32:30 +02:00
# 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éé
2021-05-06 20:28:22 +02:00
def test_02_creation_etudiant_avec_meme_nip ( self ) :
2021-04-21 13:28:58 +02:00
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 (
2021-05-06 20:28:22 +02:00
" Code étudiant (code_nip) dupliqué ! "
in driver . find_element_by_id ( " titleError " ) . text
2021-04-21 13:28:58 +02:00
)
2021-05-06 08:32:30 +02:00
# Test Modification de l'adresse étudiant
# expected : La nouvelle adresse est mise à jour sur la page information de l'étudiant
2021-05-06 20:28:22 +02:00
def test_03_modification_adresse_etudiant ( self ) :
2021-04-21 13:28:58 +02:00
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 )
2021-04-23 13:57:24 +02:00
driver . find_element_by_id ( " changerCoordonneesEtudiant " ) . click ( )
2021-04-21 13:28:58 +02:00
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 ( )
2021-04-23 13:57:24 +02:00
time . sleep ( 1 )
2021-05-06 20:28:22 +02:00
self . assertTrue (
codepostaldomicile in driver . find_element_by_id ( " champAdresse " ) . text
)
2021-04-21 13:28:58 +02:00
2021-05-06 08:32:30 +02:00
# Test Inscription d'un étudiant dans un semestre
# @expected :
2021-05-06 20:28:22 +02:00
def test_04_inscription_etudiant ( self ) :
2021-04-21 13:28:58 +02:00
driver = self . driver
url = (
" https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/ "
+ nomDPT
+ " /Scolarite/search_etud_in_dept "
)
driver . get ( url )
2021-05-06 20:28:22 +02:00
element = driver . find_element_by_id ( " searchEtud " )
2021-04-21 13:28:58 +02:00
element . send_keys ( nomEtu )
element . submit ( )
time . sleep ( 1 )
2021-04-23 13:57:24 +02:00
driver . find_element_by_id ( " inscription_Etudiant " ) . click ( )
2021-04-21 13:28:58 +02:00
time . sleep ( 1 )
self . assertTrue ( " <h3>Choisir un semestre:</h3> " in driver . page_source )
driver . find_elements_by_id ( " semestreInscription " ) [ 0 ] . click ( )
2021-04-23 13:57:24 +02:00
time . sleep ( 1 )
2021-04-21 13:28:58 +02:00
driver . find_element_by_xpath ( " //input[@value= ' Inscrire ' ] " ) . click ( )
self . wait . until ( EC . url_changes ( url ) )
2021-04-23 13:57:24 +02:00
self . assertTrue ( " Inscrire " in driver . page_source )
time . sleep ( 1 )
2021-04-21 13:28:58 +02:00
2021-05-06 08:32:30 +02:00
# Test Supprime un étudiant
# @expected : Lors d'une recherche sur le nom de l'étudiant, aucun résultat apparait
2021-05-06 20:28:22 +02:00
def test_05_suppresion_etudiant ( self ) :
2021-04-21 13:28:58 +02:00
driver = self . driver
2021-04-23 13:57:24 +02:00
urlRecherche = (
2021-04-21 13:28:58 +02:00
" https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/ "
+ nomDPT
+ " /Scolarite/search_etud_in_dept "
)
2021-04-23 13:57:24 +02:00
driver . get ( urlRecherche )
2021-04-21 13:28:58 +02:00
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
2021-04-23 13:57:24 +02:00
+ " /Scolarite/etudident_delete?etudid= "
2021-04-21 13:28:58 +02:00
+ etudid . text
)
driver . get ( url )
2021-04-23 13:57:24 +02:00
time . sleep ( 1 )
2021-04-21 13:28:58 +02:00
driver . find_element_by_xpath (
" //input[@value= ' Supprimer définitivement cet étudiant ' ] "
) . click ( )
2021-04-23 13:57:24 +02:00
driver . get ( urlRecherche )
element = driver . find_element_by_name ( " expnom " )
element . send_keys ( nomEtu )
element . submit ( )
time . sleep ( 1 )
2021-05-06 20:28:22 +02:00
try :
element = driver . find_element_by_id ( " titleNoResult " )
self . assertTrue ( " Aucun résultat " in element . text )
except :
self . assertFalse ( False )
2021-04-21 13:28:58 +02:00
# ferme la fenetre
def tearDown ( self ) :
self . driver . close ( )
if __name__ == " __main__ " :
unittest . main ( )