Skip to content

Commit 52433f7

Browse files
committed
Mise en place des tests liés à l'analyzer aes cbc
1 parent 3d6332f commit 52433f7

4 files changed

Lines changed: 48 additions & 18 deletions

File tree

src/analyzers/aes_cbc_analyzer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def generer_cles_candidates(self, chemin_dictionnaire: str) -> list[bytes]:
9999
chemin_dictionnaire(str): le chemin du dictionnaire de mots de passes pour l'attaque par dictionnaire.
100100
101101
Returns:
102-
list[bytes]: liste des clés candidates.
102+
list[bytes]: liste des clés candidates.
103103
'''
104104

105105
mots_de_passe_cible = self.filtrer_dictionnaire_par_indices(chemin_dictionnaire)

src/utils.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import sys
44
import os
55

6-
76
def calculer_entropie(bytes) -> float:
87
'''
98
Calcul l'entropie (le désordre dans une suite de données) afin de déterminer le degré d'improbabilité d'une chaine de données.

tests/test_analyzers.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
from unittest import TestCase, main
2+
import sys
3+
sys.path.append('.')
4+
sys.path.append('..')
5+
from src.analyzers.aes_cbc_analyzer import Aes_Cbc_Analyzer
6+
7+
class AnalyzersTester(TestCase):
8+
9+
"""
10+
Cette classe est principalement destinée à recueillir toutes les fonctions de test des analyseurs d'algorithme
11+
de chiffrement.
12+
"""
13+
14+
def setUp(self):
15+
self.chemin_fichier_chiffre = "data/mission1.enc"
16+
self.wordlist = "keys/wordlist.txt"
17+
self.analyser = Aes_Cbc_Analyzer()
18+
19+
20+
def test_aes_cbc_identifier_algo(self):
21+
self.assertAlmostEqual(self.analyser.identifier_algo(self.chemin_fichier_chiffre), 1)
22+
23+
def test_aes_cbc_filtrage_dict(self):
24+
self.assertIsInstance(self.analyser.filtrer_dictionnaire_par_indices(self.wordlist), list)
25+
26+
def test_generation_cles_candidate(self):
27+
self.assertIsInstance(self.analyser.generer_cles_candidates(self.wordlist), list)
28+
29+
def test_exception_dechiffrer(self):
30+
with self.assertRaises(FileNotFoundError):
31+
self.analyser.dechiffrer("no_file_dohi.txt", self.analyser.generer_cles_candidates(self.wordlist))
32+
33+
main()

tests/test_global.py

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,20 @@ def add(a,b):
1515

1616
class BetaTester(TestCase):
1717
#Définition de la méthode de test
18+
"""
19+
# La fonction doit être préfixé du mot test pour que le TestCase puisse le l'identifier en tant que méthode à tester (le snake_case ici devra être appliqué ici)
20+
21+
# En fonction du type de vérification que vous souhaitez effectué par rapport aux test les méthodes assert devront variés.
22+
ex : * assertEqual() pour vérifier l'égalité. Dans le cas utilisé cette fonction vérifie si le retour de la fonction add correspond à la valeur 10
23+
* assertIn() pour vérifier si une variable est dans une iterable
24+
* assertIsInstance() pour vérifier le type de retour d'une variable ou fonction etc... (description des méthodes à l'appui)
25+
26+
NB : Pour tester sa fonction chacun devra faire un import pour éviter la redondance.
27+
Chaque fonction à tester devra se retrouver dans la class BetaTester avec un nom clair et propre à sa fonctionnalité précédé du mot "test"
28+
29+
command : pyhton test_global.py [-v (-- verbose)] (verbose pour un test avec plus de précision)
30+
31+
"""
1832

1933
def test_addition(self):
2034
self.assertEqual(add(5,5),10)
@@ -27,20 +41,4 @@ def test_calcul_entropie(self):
2741
self.assertGreater(calculer_entropie("aaaaaaaa"), 0)
2842

2943

30-
31-
32-
"""
33-
# La fonction doit être préfixé du mot test pour que le TestCase puisse le l'identifier en tant que méthode à tester (le snake_case ici devra être appliqué ici)
34-
35-
# En fonction du type de vérification que vous souhaitez effectué par rapport aux test les méthodes assert devront variés.
36-
ex : * assertEqual() pour vérifier l'égalité. Dans le cas utilisé cette fonction vérifie si le retour de la fonction add correspond à la valeur 10
37-
* assertIn() pour vérifier si une variable est dans une iterable
38-
* assertIsInstance() pour vérifier le type de retour d'une variable ou fonction etc... (description des méthodes à l'appui)
39-
40-
NB : Pour tester sa fonction chacun devra faire un import pour éviter la redondance.
41-
Chaque fonction à tester devra se retrouver dans la class BetaTester avec un nom clair et propre à sa fonctionnalité précédé du mot "test"
42-
43-
command : pyhton test_global.py [-v (-- verbose)] (verbose pour un test avec plus de précision)
44-
45-
"""
4644
main()

0 commit comments

Comments
 (0)