initial commit

This commit is contained in:
Aurélien Plancke 2021-04-21 13:28:58 +02:00
commit 70f153e825
10 changed files with 2826 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
settings.json

219
UserStory.xml Normal file
View File

@ -0,0 +1,219 @@
<Tests>
<Test>
<intitulé>Connexion en admin</intitulé>
<page>scodoc_admin</page>
<operation>
Acceder à la page https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/scodoc_admin avec les identifiants admin;
</operation>
<resultat>
Connexion établie (h3 = page Administration de scodoc)
</resultat>
<role>Admin Scodoc</role>
<createur>Aurélien</createur>
</Test>
<Test>
<intitulé>Création d'un département</intitulé>
<page>scodoc_admin</page>
<operation>
Accès à la page https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/scodoc_admin,
séléctionner un département dans création département,
clicker sur créer département,
valider sur la page suivante
</operation>
<resultat>
Apparition du lien du département sur la page d'accueil
</resultat>
<role>Admin Scodoc</role>
<createur>Aurélien</createur>
</Test>
<Test>
<intitulé>Création d'une formation</intitulé>
<page>Scolarite/Notes</page>
<operation>
https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/[nom_formation]/Scolarite/Notes/formation_create,
remplissage des champs:
tf_acronyme (DUT Test),
tf_titre (Diplome universitaire et technologique de test),
tf_titre_officiel (Diplome universitaire et technologique de test),
tf_formation_code (123456)
Soumettre le formulaire;
</operation>
<resultat>
la page sur laquelle on est dirigée contient une class formation_descr
</resultat>
<role>AdminDPT</role>
<createur>Aurélien</createur>
</Test>
<Test>
<intitulé>Ajout d'une UE à la formation créée</intitulé>
<page>Scolarite/Notes</page>
<operation>
https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/AurelienUS/Scolarite/Notes/ue_create?formation_id=FORM130
remplissage des champs:
tf_titre "Informatique"
tf_acronyme "Info"
tf_numero "1"
tf_ects "10"
tf_coefficient "10"
Soumettre le formulaire;
</operation>
<resultat>
La page sur laquelle on est dirigée contient "Info Informatique"
</resultat>
<role>AdminDPT</role>
<createur>Aurélien</createur>
</Test>
<Test>
<intitulé>Ajout d'une matière à l'UE créée</intitulé>
<page>Scolarite/Notes</page>
<operation>
Soumettre le formulaire d'ajout de matière
</operation>
<resultat>
La page sur laquelle on est dirigée contient la classe notes_matiere_list et un de ses enfants contient Systeme </resultat>
<role>AdminDPT</role>
<createur>Aurélien</createur>
</Test>
<Test>
<intitulé>Ajouter une session</intitulé>
<page>Scolarite/Notes</page>
<operation>
Verifier que la list de formation est présente
Se rendre sur la page correspondante "Mise en place d'un semestre de formation" à la formation
Vérifier que grtcontent > h2 existe et qu'il contient "Mise en place d'un semestre de formation""
Soumettre le formulaire après l'avoir rempli
</operation>
<resultat>
La page sur laquelle on est dirigée contient une classe head_message avec nouveau semestre créé
</resultat>
<role>AdminDPT</role>
<createur>Aurélien</createur>
</Test>
<Test>
<intitulé>Creer un étudiant</intitulé>
<page>Scolarite</page>
<operation>
https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/AurelienUS/Scolarite/etudident_create_form
Remplir les champs et soumettre le formulaire;
</operation>
<resultat>
La page contient ficheEtud avec un h2 contenant M. Normal UnEtudiant
</resultat>
<role>AdminDPT</role>
<createur>Aurélien</createur>
</Test>
<Test>
<intitulé>Creer une absence</intitulé>
<page>Scolarite/Absences</page>
<operation>
Affecter une absence à un étudiant
</operation>
<resultat>
La page absence de cet étudiant contient l'absence créée
</resultat>
<role>SecraitaireDPT</role>
<createur>Aurélien</createur>
</Test>
<Test>
<intitulé>Justifier une absence</intitulé>
<page>Scolarite/Absences</page>
<operation>
Justifier une absence et la confirmer
</operation>
<resultat>
Ses absences apparaissent comme justifiée sur la page des absences de cet étudiant
</resultat>
<role>SecretaireDPT</role>
<createur>Aurélien</createur>
</Test>
<Test>
<intitulé>Générer les absences pour une journée</intitulé>
<page>Scolarite/Notes/Absences/EtatAbsences</page>
<operation>
Généner le récapitulatif des absences
</operation>
<resultat>
La page générée contient les absences préalablement créée
</resultat>
<role>SecretaireDPT</role>
<createur>Aurélien</createur>
</Test>
<Test>
<intitulé>Export XML de la formation</intitulé>
<page>Scolarite/Notes</page>
<operation>
Génération de l'export XML, vérifier s'il contient les informations de la formations
</operation>
<resultat>
Le xml généré contient les informations demandées
</resultat>
<role>AdminDPT</role>
<createur>Aurélien</createur>
</Test>
<Test>
<intitulé>Export JSON de la formation</intitulé>
<page>Scolarite/Notes</page>
<operation>
Génération de l'export JSON, vérifier s'il contient les informations de la formations
</operation>
<resultat>
Le JSON généré contient les informations demandées
</resultat>
<role>AdminDPT</role>
<createur>Aurélien</createur>
</Test>
<Test>
<intitulé>Verifier la génération du récapitulatif</intitulé>
<page>Scolarite/Notes/ue_list</page>
<operation>
Se rendre sur la page table récapitulative de la formation
</operation>
<resultat>
La page contient toutes les UE et matière précédemment créées
</resultat>
<role>AdminDPT</role>
<createur>Aurélien</createur>
</Test>
<Test>
<intitulé>Changer les données d'un étudiant</intitulé>
<page>Scolarité</page>
<operation>
Changer les données/Identitée
</operation>
<resultat>
La fiche étudiante est mise à jour avec les nouvelles informations
</resultat>
<role>SecretaireDPT</role>
<createur>Aurélien</createur>
</Test>
<Test>
<intitulé></intitulé>
<page></page>
<operation>
</operation>
<resultat>
</resultat>
<role></role>
<createur></createur>
</Test>
<Test>
<intitulé></intitulé>
<page></page>
<operation>
</operation>
<resultat>
</resultat>
<role></role>
<createur></createur>
</Test>
<Test>
<intitulé></intitulé>
<page></page>
<operation>
</operation>
<resultat>
</resultat>
<role></role>
<createur></createur>
</Test>
</Tests>

188
UserStory.yaml Normal file
View File

@ -0,0 +1,188 @@
test1:
intitulé: "Connexion en admin"
page: scodoc_admin
operation: Acceder à la page https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/scodoc_admin avec les identifiants admin;
resultat: Connexion établie (h3 = page Administration de scodoc)
roleAdmin: Scodoc
createur: Aurélien
test2:
intitulé: Création d'un département
page: scodoc_admin
operation:
Accès à la page https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/scodoc_admin,
séléctionner un département dans création département,
clicker sur créer département,
valider sur la page suivante
resultat: Apparition du lien du département sur la page d'accueil
role: Admin Scodoc
createur: Aurélien
test3:
intitulé: Création d'une formation
page: Scolarite/Notes
operation:
https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/[nom_formation]/Scolarite/Notes/formation_create,
remplissage des champs
tf_acronyme (DUT Test),
tf_titre (Diplome universitaire et technologique de test),
tf_titre_officiel (Diplome universitaire et technologique de test),
tf_formation_code (123456)
Soumettre le formulaire;
resultat: la page sur laquelle on est dirigée contient une class formation_descr
role: AdminDPT
createur: Aurélien
test4:
intitulé: Ajout d'une UE à la formation créée
page: Scolarite/Notes
operation:
https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/AurelienUS/Scolarite/Notes/ue_create?formation_id=FORM130
remplissage des champs
tf_titre "Informatique"
tf_acronyme "Info"
tf_numero "1"
tf_ects "10"
tf_coefficient "10"
Soumettre le formulaire;
resultat: La page sur laquelle on est dirigée contient "Info Informatique"
role: AdminDPT
createur: Aurélien
test5:
intitulé: Ajout d'une matière à l'UE créée
page: Scolarite/Notes
operation: Soumettre le formulaire d'ajout de matière
resultat: La page sur laquelle on est dirigée contient la classe notes_matiere_list et un de ses enfants contient Systeme
role: AdminDPT
createur: Aurélien
test6:
intitulé: Ajouter une session
page: Scolarite/Notes
operation:
Verifier que la list de formation est présente
Se rendre sur la page correspondante "Mise en place d'un semestre de formation" à la formation
Vérifier que grtcontent h2 existe et qu'il contient "Mise en place d'un semestre de formation""
Soumettre le formulaire après l'avoir rempli
resultat: La page sur laquelle on est dirigée contient une classe head_message avec nouveau semestre créé
role: AdminDPT
createur: Aurélien
test7:
intitulé: Creer un étudiant
page: Scolarite
operation:
https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/AurelienUS/Scolarite/etudident_create_form
Remplir les champs et soumettre le formulaire
resultat: La page contient ficheEtud avec un h2 contenant M. Normal UnEtudiant
role: AdminDPT
createur: Aurélien
test8:
intitulé: Creer une absence
page: Scolarite/Absences
operation: Affecter une absence à un étudiant
resultat: La page absence de cet étudiant contient l'absence créée
role: SecretaireDPT
createur: Aurélien
test9:
intitulé: Justifier une absence
page: Scolarite/Absences
operation: Justifier une absence et la confirmer
resultat: Ses absences apparaissent comme justifiée sur la page des absences de cet étudiant
role: SecretaireDPT
createur: Aurélien
test10:
intitulé: Générer les absences pour une journée
page: Scolarite/Notes/Absences/EtatAbsences
operation: Généner le récapitulatif des absences
resultat: La page générée contient les absences préalablement créée
role: SecretaireDPT
createur: Aurélien
test11:
intitulé: Export XML de la formation
page: Scolarite/Notes
operation: Génération de l'export XML, vérifier s'il contient les informations de la formations
resultat: Le xml généré contient les informations demandées
role: AdminDPT
createur: Aurélien
test12:
intitulé: Export JSON de la formation
page: Scolarite/Notes
operation: Génération de l'export JSON, vérifier s'il contient les informations de la formations
resultat: Le JSON généré contient les informations demandées
role: AdminDPT
createur: Aurélien
test13:
intitulé: Verifier la génération du récapitulatif
page: Scolarite/Notes/ue_list
operation: Se rendre sur la page table récapitulative de la formation
resultat: La page contient toutes les UE et matière précédemment créées
role: AdminDPT
createur: Aurélien
test14:
intitulé: Changer les données d'un étudiant
page: Scolarité
operation: Changer les données/Identitée
resultat: La fiche étudiant est mise à jour avec les nouvelles informations
role: SecretaireDPT
createur: Aurélien
test15:
intitulé: Inscrire un étudiant
page: Scolarite
operation: Rechercher l'étudiant et l'inscrire au semestre courant
resultat: La pageEtu de l'étudiant contient maintenant le semstre courant
role: SecretaireDPT
createur: Aurélien
test16:
intitulé: Décision recommandé de validation de semestre pour un etudiant assidu
page: Scolarite/Notes
operation: Selectionner la validation de semestre dans les opérations scolarité, séléctionner étudiant assidu et valider
resultat: L'état ATT apparait sur la fiche de l'étudiant concerné
role: SecretaireDPT
createur: Aurélien
test17:
intitulé: Décision recommandé de validation de semestre pour un etudiant non assidu
page: Scolarite/Notes
operation: Selectionner la validation de semestre dans les opérations scolarité, séléctionner problème d'assiduité et valider
resultat: L'état ATT apparait sur la fiche de l'étudiant concerné et la mention (non ass.) apparait sur la page de parcours de l'étudiant
role: SecretaireDPT
createur: Aurélien
test18:
intitulé: Effectuer la démission d'un étudiant
page: Scolarite/ficheEtud
operation: Selectionner la demission dans les opérations scolarité, entrer une date et confirmer
resultat: La mention "Démission le xx" apparait sur la fiche de l'étudiant concerné
role: SecretaireDPT
createur: Aurélien
test19:
intitulé: Affecter des absences à un étudiant depuis la gestion des absences
page: Scolarite/Absences
operation: Selectionner la semaine concernée et cocher les cases correspondantes pour un étudiant
resultat: Le compteur d'absence de l'étudiant à été mis à jour
role: [SecretaireDPT, EnseignantDPT]
createur: Aurélien
test20:
intitulé: Créer une répartition
page: Scolarite/Notes
operation: Dans le menu modifier créer des groupes, rentrer le nom de la partition et clicker sur nouvelle partition
resultat: Le tableau contient une nouvelle ligne avec le nom de la partition préalablement rempli
role: [AdminDPT, SecretaireDPT]
createur: Aurélien
test21:
intitulé: Créer un groupe
page: Scolarite/Notes
operation: Dans le menu modifier/créer des groupes, clicker sur répartir à coté de la partition concernée, remplir groupName et appuyer sur créer groupe
resultat: Le groupe apprait dans la div groups
role: [AdminDPT, SecretaireDPT]
createur: Aurélien
test22:
intitulé: Affecter des étudiants à un groupe
page: Scolarite/Notes
operation: Dans une répartition, déplacer des étudiants de étudiants sans groupe au groupe souhaité, enregister ces groupes
resultat: Le groupe (discretelink) apparait maintenant sur la fiche des étudiants correspondant
role: SecretaireDPT
createur: Aurélien
test23:
intitulé: Créer un module optionnel
page:
operation:
resultat:
role:
createur: Aurélien

128
creation_absence_test.py Normal file
View File

@ -0,0 +1,128 @@
import unittest
import time
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"
dateDebutAbsenceJustifiee = "12/04/2021"
dateDebutAbsenceNonJustifiee = "13/04/2021"
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"
)
driver = self.driver
driver.implicitly_wait(10)
url = (
"https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/"
+ nomDPT
+ "/Scolarite/Absences/search_etud_in_dept"
)
driver.get(url)
element = driver.find_element_by_name("expnom")
element.send_keys(nomEtu)
element.submit()
# Test : creer un étudiant et verifie si sa fiche étudiante est créée
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 <b>NON justifiées</b>" 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)
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 <b>justifiées</b>" 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)
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 <b>justifications</b>" 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)
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()

View File

@ -0,0 +1,48 @@
import unittest
import time
from selenium import webdriver
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'
class PythonOrgSearch(unittest.TestCase):
nomDpt = "AurelienUS"
#Permet de se connecter et se remettre sur la page d'accueil avant chaque test
def setUp(self):
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-dev-iutinfo.univ-lille.fr/ScoDoc")
#Verifie si le "bonjour admin" (signifiant la connexion réussie) est présent
def test_connexion_admin(self):
driver = self.driver
self.assertTrue("admin" in driver.page_source)
#Creer un département et vérifie qu'il est bien présent sur la page d'accueil
def test_create_departement(self):
driver = self.driver
driver.get("https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/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)
driver.get("https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc")
self.assertTrue("TESTDPT" in driver.page_source)
#def test_create_module(self):
# driver = self.driver
# element = driver.find_element_by_name("TESTDPT")
#ferme la fenetre à chaque fin de test
def tearDown(self):
self.driver.close()
if __name__ == "__main__":
unittest.main()

View File

@ -0,0 +1,52 @@
import unittest
import time
from selenium import webdriver
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"
nomDpt = "AurelienUS"
baseURL = "https://scodoc-dev-iutinfo.univ-lille.fr"
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.driver.get(
"https://"
+ SCODOC_ADMIN_ID
+ ":"
+ SCODOC_ADMIN_PASS
+ "@scodoc-dev-iutinfo.univ-lille.fr/force_admin_authentication"
)
self.driver.get(baseURL + "/ScoDoc")
# Creer un département et vérifie qu'il est bien présent sur la page d'accueil
def test_create_formation(self):
driver = self.driver
url = baseURL + "/ScoDoc/" + nomDpt + "/Scolarite/Notes/formation_create"
driver.get(url)
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)
driver.get(baseURL + "/ScoDoc")
self.assertTrue("TESTDPT" in driver.page_source)
# def test_create_module(self):
# driver = self.driver
# element = driver.find_element_by_name("TESTDPT")
# ferme la fenetre à chaque fin de test
def tearDown(self):
self.driver.close()
if __name__ == "__main__":
unittest.main()

164
etudiant_test.py Normal file
View File

@ -0,0 +1,164 @@
import unittest
import time
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
def test_creation_etudiant(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("M. " + prenomEtu + " " + nomEtu.upper() in driver.page_source)
self.assertTrue(nip in driver.page_source)
def test_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(
"<h3>Code étudiant (code_nip) dupliqué !</h3>" in driver.page_source
)
def test_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_link_text("modifier adresse").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(5)
self.assertTrue(
codepostaldomicile + " " + paysdomicile + " " + paysdomicile
in driver.page_source
)
def test_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_name("expnom")
element.send_keys(nomEtu)
element.submit()
time.sleep(1)
driver.find_element_by_link_text("inscrire").click()
time.sleep(1)
self.assertTrue("<h3>Choisir un semestre:</h3>" in driver.page_source)
driver.find_elements_by_id("semestreInscription")[0].click()
self.wait.until(EC.url_changes(url))
driver.find_element_by_xpath("//input[@value='Inscrire']").click()
self.wait.until(EC.url_changes(url))
time.sleep(5)
self.assertTrue("Inscrire" not in driver.page_source)
def test_suppresion_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)
etudid = driver.find_element_by_id("euid")
url = (
"https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/"
+ nomDPT
+ "etudident_delete?etudid="
+ etudid.text
)
driver.get(url)
time.sleep(2)
driver.find_element_by_xpath(
"//input[@value='Supprimer définitivement cet étudiant']"
).click()
# Test changer les donnees d'un etudiant
# ferme la fenetre
def tearDown(self):
# url = "https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/"+nomDPT+"/Scolarite/"
# self.driver.get(url)
# elem = self.driver.find_element_by_id("in-expnom")
# elem.send_keys(nomEtu)
# elem.send_keys(Keys.ENTER)
# self.wait.until(EC.url_changes(url))
# url = self.driver.current_url
# parsedurl = urlparse.urlparse(url)
# etudi = parse_qs(parsedurl)['etudid']
# print(etudi)
# self.driver.get(url+"etidodent_delete?etutid="+etudi)
self.driver.close()
if __name__ == "__main__":
unittest.main()

1972
geckodriver.log Normal file

File diff suppressed because it is too large Load Diff

42
modif_etudiant_test.py Normal file
View File

@ -0,0 +1,42 @@
import unittest
import time
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"
oldnip = "11122234"
newnip = "12345678"
eid = "EID1"
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 changer les données d'un étudiant
def test_changement_info_etudiant(self):
url = "https://scodoc-dev-iutinfo.univ-lille.fr/ScoDoc/"+nomDPT+"/Scolarite/etudident_edit_form?etudid="+eid
driver = self.driver
driver.get(url)
driver.find_element_by_id("tf_code_nip").clear()
driver.find_element_by_id("tf_code_nip").send_keys(newnip)
driver.find_element_by_id("tf_submit").click()
self.wait.until(EC.url_changes(url))
time.sleep(5)
self.assertTrue(newnip in driver.page_source)
#ferme la fenetre
def tearDown(self):
self.driver.close()
if __name__ == "__main__":
unittest.main()

12
python_org_search.py Normal file
View File

@ -0,0 +1,12 @@
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.close()