initial commit
This commit is contained in:
commit
70f153e825
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
settings.json
|
219
UserStory.xml
Normal file
219
UserStory.xml
Normal 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
188
UserStory.yaml
Normal 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
128
creation_absence_test.py
Normal 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()
|
48
creation_departement_test.py
Normal file
48
creation_departement_test.py
Normal 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()
|
52
creation_formation_test.py
Normal file
52
creation_formation_test.py
Normal 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
164
etudiant_test.py
Normal 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
1972
geckodriver.log
Normal file
File diff suppressed because it is too large
Load Diff
42
modif_etudiant_test.py
Normal file
42
modif_etudiant_test.py
Normal 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
12
python_org_search.py
Normal 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()
|
Loading…
Reference in New Issue
Block a user