66from parse .fichier_log_apache import FichierLogApache
77from analyse .analyseur_log_apache import AnalyseurLogApache
88
9+
910# Tests unitaires
1011
1112@pytest .mark .parametrize ("fichier, nombre_par_top" , [
1213 (False , 3 ),
1314 (FichierLogApache ("test.log" ), False )
1415])
15- def test_analyseur_exception_type_invalide (fichier , nombre_par_top ):
16+ def test_analyseur_log_exception_type_invalide (fichier , nombre_par_top ):
1617 """
1718 Vérifie que la classe AnalyseurLogApache lève une :class:`TypeError` si les types des
1819 paramètres du constructeur sont invalides.
@@ -21,20 +22,26 @@ def test_analyseur_exception_type_invalide(fichier, nombre_par_top):
2122 - Type incorrect pour le paramètre ``fichier``.
2223 - Type incorrect pour le paramètre ``nombre_par_top``.
2324
25+ Asserts:
26+ - Une exception :class:`TypeError` est levée.
27+
2428 Args:
2529 fichier (any): Représentation du fichier log.
2630 nombre_par_top (any): Nombre maximum d'éléments dans le top classement.
2731 """
2832 with pytest .raises (TypeError ):
2933 analyseur = AnalyseurLogApache (fichier , nombre_par_top )
3034
31- def test_analyseur_exception_valeur_nombre_par_top_invalide ():
35+ def test_analyseur_log_exception_valeur_nombre_par_top_invalide ():
3236 """
33- Vérifie que la classe AnalyseurLogApache lève une :class:`ValueError` si le
37+ Vérifie que la classe AnalyseurLogApache lève une exception si le
3438 paramètre ``nombre_par_top`` du constructeur est un entier négatif.
3539
3640 Scénarios testés:
3741 - Nombre négatif pour ``nombre_par_top``.
42+
43+ Asserts:
44+ - Une exception :class:`ValueError` est levée.
3845 """
3946 with pytest .raises (ValueError ):
4047 analyseur = AnalyseurLogApache (FichierLogApache ("test.log" ), - 4 )
@@ -49,12 +56,15 @@ def test_analyseur_exception_repartition_elements_type_invalide(analyseur_log_ap
4956 nom_element ,
5057 mode_top_classement ):
5158 """
52- Vérifie que _get_repartition_elements lève une :class:`TypeError` si les types sont invalides.
59+ Vérifie que _get_repartition_elements lève une exception si les types sont invalides.
5360
5461 Scénarios testés:
55- - ``liste_elements`` n'est pas une ``list``.
56- - ``nom_element`` n'est pas un ``str``.
57- - ``mode_top_classement`` n'est pas un ``bool``.
62+ - Type incorrect pour le paramètre ``liste_elements``.
63+ - Type incorrect pour le paramètre ``nom_element``.
64+ - Type incorrect pour le paramètre ``mode_top_classement``.
65+
66+ Asserts:
67+ - Une exception :class:`TypeError` est levée.
5868
5969 Args:
6070 analyseur_log_apache (AnalyseurLogApache): Fixture pour l'instance
@@ -201,4 +211,62 @@ def test_analyseur_repartition_code_statut_htpp_valide(analyseur_log_apache):
201211 assert repartition [0 ]["taux" ] == 80.0
202212 assert repartition [1 ]["code" ] == 200
203213 assert repartition [1 ]["total" ] == 1
204- assert repartition [1 ]["taux" ] == 20.0
214+ assert repartition [1 ]["taux" ] == 20.0
215+
216+ @pytest .mark .parametrize ("nombre_entrees" , [
217+ (0 ), (3 ), (100 )
218+ ])
219+ def test_analyseur_get_total_entrees_valide (analyseur_log_apache ,
220+ fichier_log_apache ,
221+ entree_log_apache ,
222+ nombre_entrees ):
223+ """
224+ Vérifie que ``get_total_entrees`` retourne le nombre correcte d'entrées dans le fichier.
225+
226+ Scénarios testés:
227+ - Vérification avec des fichiers avec des nombre d'entrées différents.
228+
229+ Asserts:
230+ - La méthode renvoie le nombre d'éléments dans la liste.
231+
232+ Args:
233+ analyseur_log_apache (AnalyseurLogApache): Fixture pour l'instance
234+ de la classe :class:`AnalyseurLogApache`.
235+ fichier_log_apache (FichierLogApache): Fixture pour l'instance
236+ de la classe :class:`FichierLogApache`.
237+ entree_log_apache (EntreeLogApache): Fixture pour l'instance
238+ de la classe :class:`EntreeLogApache`.
239+ nombre_entrees (int): Le nombre total d'entrées dans le fichier.
240+ """
241+ fichier_log_apache .entrees = [entree_log_apache ] * nombre_entrees
242+ assert analyseur_log_apache .get_total_entrees () == nombre_entrees
243+
244+ def test_analyseur_get_analyse_complete_valide (analyseur_log_apache ):
245+ """
246+ Vérifie que ``get_analyse_complete`` retourne un rapport de l'analyse correct
247+ qui se base sur le retour des autres méthodes.
248+
249+ Scénarios testés:
250+ - Vérification du rapport de l'analyse.
251+
252+ Asserts:
253+ - Les éléments du rapport se basent sur les mêmes valeurs que les autres méthodes.
254+
255+ Args:
256+ analyseur_log_apache (AnalyseurLogApache): Fixture pour l'instance
257+ de la classe :class:`AnalyseurLogApache`.
258+ fichier_log_apache (FichierLogApache): Fixture pour l'instance
259+ de la classe :class:`FichierLogApache`.
260+ entree_log_apache (EntreeLogApache): Fixture pour l'instance
261+ de la classe :class:`EntreeLogApache`.
262+ nombre_entrees (int): Le nombre total d'entrées dans le fichier.
263+ """
264+ analyse = analyseur_log_apache .get_analyse_complete ()
265+ assert analyse ["chemin" ] == analyseur_log_apache .fichier .chemin
266+ statistiques = analyse ["statistiques" ]
267+ assert statistiques ["total_entrees" ] == analyseur_log_apache .get_total_entrees ()
268+ statistiques_requetes = statistiques ["requetes" ]
269+ assert statistiques_requetes ["top_urls" ] == analyseur_log_apache .get_top_urls ()
270+ assert (statistiques_requetes ["repartition_code_statut_http" ]
271+ == analyseur_log_apache .get_total_par_code_statut_http ())
272+
0 commit comments