1+ """
2+ Module des tests unitaires pour la classe de représentation d'un fichier de log
3+ ou celle d'une entrée d'un log.
4+ """
5+
6+ import pytest
7+ from datetime import datetime
8+ from parse .fichier_log_apache import FichierLogApache
9+ from parse .entree_log_apache import EntreeLogApache
10+ from donnees .client_informations import ClientInformations
11+ from donnees .requete_informations import RequeteInformations
12+ from donnees .reponse_informations import ReponseInformations
13+
14+
15+ @pytest .mark .parametrize ("chemin, entrees" , [
16+ (False , []),
17+ ("Chemin" , False )
18+ ])
19+ def test_fichier_log_exception_type_invalide (chemin , entrees ):
20+ """
21+ Vérifie que l'initialisation d'un FichierLogApache renvoie une erreur lorsque le type
22+ de son paramètre est invalide.
23+
24+ Scénarios testés:
25+ - Paramètre ``chemin`` avec un mauvais type.
26+ - Paramètre ``entrees`` avec un mauvais type.
27+
28+ Asserts:
29+ - Une exception :class:`TypeError` est levée.
30+
31+ Args:
32+ chemin (any): Le chemin du fichier.
33+ entrees (any): Les entrées du fichier.
34+ """
35+ with pytest .raises (TypeError ):
36+ fichier = FichierLogApache (chemin , entrees )
37+
38+ def test_fichier_log_exception_ajoute_entree_type_invalide (fichier_log_apache ):
39+ """
40+ Vérifie que la méthode ajoute_entree retourne une erreur lorsque son paramètre
41+ n'est pas du type attendu.
42+
43+ Scénarios testés:
44+ - Paramètre ``entree`` avec un mauvais type.
45+
46+ Asserts:
47+ - Une exception :class:`TypeError` est levée.
48+
49+ Args:
50+ fichier_log_apache (FichierLogApache): Fixture pour l'instance
51+ de la classe :class:`FichierLogApache`.
52+ """
53+ with pytest .raises (TypeError ):
54+ fichier_log_apache .ajoute_entree (False )
55+
56+ @pytest .mark .parametrize ("client, requete, reponse" , [
57+ (False ,
58+ RequeteInformations (datetime (1 , 1 , 1 ), "GET" , "/" , "HTTP/1.1" , "/" ),
59+ ReponseInformations (0 , 0 )),
60+ (ClientInformations ("1.1.1.1" , "RFC" , "test" , "google" ),
61+ False ,
62+ ReponseInformations (0 , 0 )),
63+ (ClientInformations ("1.1.1.1" , "RFC" , "test" , "google" ),
64+ RequeteInformations (datetime (1 , 1 , 1 ), "GET" , "/" , "HTTP/1.1" , "/" ),
65+ False )
66+ ])
67+ def test_entree_log_exception_type_invalide (client , requete , reponse ):
68+ """
69+ Vérifie que l'initialisation d'un EntreeLogApache renvoie une erreur lorsque le type
70+ de son paramètre est invalide.
71+
72+ Scénarios testés:
73+ - Paramètre ``client`` avec un mauvais type.
74+ - Paramètre ``requete`` avec un mauvais type.
75+ - Paramètre ``reponse`` avec un mauvais type.
76+
77+ Asserts:
78+ - Une exception :class:`TypeError` est levée.
79+
80+ Args:
81+ client (any): Les informations du client sur cette entrée.
82+ requete (any): Les informations de la requête sur cette entrée.
83+ reponse (any): Les informations de la réponse sur cette entrée.
84+ """
85+ with pytest .raises (TypeError ):
86+ entree = EntreeLogApache (client , requete , reponse )
0 commit comments