Age | Commit message (Collapse) | Author |
|
Il est possible que la source renvoie des pages vides ou incorrectes,
il est donc nécessaire de tester le comportement du parseur dans ces
cas-là.
Ajout d’un modèle de page vide dans les données de test.
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Dans certaines conditions, un nouveau cours doit être créé dans la
base de données, mais parfois non. Pour vérifier qu’un seul cours a
bien été rajouté (ou non, en fonction des cas), on teste aussi le
nombre de cours présent dans la base de données.
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Le parseur est une des parties les plus importantes de
celcatsanitizer, mais ni le parseur 2017, ni le parseur 2018 n’ont eu
de test unitaires à proprement parler. Jusqu’ici, pour tester ce
composant, on ajoutait une source dans la base, on la récupérait, et
on regardait si tout correspondait plus ou moins. Cette technique a
plusieurs inconvénients : c’était une tâche rébarbative et pas
systématiquement effectuée, ce qui a posé quelques problèmes par le
passé, certains cas pouvaient ne pas se trouver dans la source au
moment de la récupération, et ce n’était pas reproductible proprement.
Rajouter des tests permettra donc de tester efficacement le parseur,
avec tous les cas de figure, rapidement et en utilisant seulement des
ressources locales.
Pour éviter d’utiliser le réseau, le module requests est mocké
lorsqu’on teste des fonctions qui l’utilisent.
L’initialisation du parseur et ses fonctions __get_event(),
get_events(), get_source() et get_update_date() (ainsi que la fonction
find_events_list() de manière indirecte) sont testées.
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Certains groupes ont la syntaxe suivante :
L1 4L s1 CM4L
L1 4L s1 TD4L1
L1 4L s1 TP4L12
etc.
Le « 4 » entre le CM/TD/TP et le « numéro » fait échouer la regex. Ce
commit rajoute le support de cette syntaxe, et ajoute les cas de test adéquats.
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
|
|
erreurs de parsage. Ces erreurs sont liées au fait qu’elles ne
possèdent pas de semestre.
Exemple avec le groupe M1 GC (toutes sections et semestres
confondus) :
Attendu :
* mention : M1 GC
* semestre :
* sous-groupe :
Obtenu avec la regex actuelle :
* mention : M1
* semestre :
* sous-groupe : C
|
|
|
|
On y créée sept salles, avec différents agencements de cours :
0. Le cours se finit dans l’intervalle sélectionné
1. Le cours se commence dans l’intervalle
2. Combinaison de 0. et de 1.
3. Le cours commence avant et fini après l’intervalle
4. Le cours commence et fini pendant l’intervalle
5. Un cours se finit avant et un autre commence après
6. Aucun cours
liste des salles.
Normalement, seules les salles des cas cinq et six doivent se
retrouver dans la liste des salles.
|
|
|
|
|
|
|
|
groupe (si jamais il n’y a pas de semestre), renvoi du numéro de
semestre dans group_info, adaptation de corresponds_to.
|
|
car dans le seul appel « utile », les arguments passés font forcément
partie du même edt. Changement effectué pour des questions de
performance.
Correction des tests.
|
|
Modification des tests
|
|
|
|
|
|
|
|
|
|
la semaine prochaine le samedi à minuit. Remplacement de ces appels
par une fonction qui retourne la bonne heure dans le bon fuseau horaire.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|