Skip to content
GitLab
Projets
Groupes
Sujets
Extraits de code
/
Aide
Aide
Support
Forum de la communauté
Raccourcis clavier
?
Proposer une rétroaction
Contribuer à GitLab
Connexion
Activer/désactiver la navigation
Menu
aw242765
docker-swarm-md5
Comparer les révisions
a62358de73d0c31a442b93d2672c20202ebbaa02...720ecfd4e244ca3ebe91b7cd7db351c2e6f8bbf5
Commits (3)
feat: adding pytest dependency
· 08c88d85
aa243527
a écrit
mar. 08, 2025
08c88d85
feat: implementing unit tests
· 519f4dcf
aa243527
a écrit
mar. 08, 2025
519f4dcf
Merge branch '8-creer-les-tests-unitaires' into 'main'
· 720ecfd4
aw242765
a écrit
mar. 08, 2025
8 creer les tests unitaires See merge request
!7
720ecfd4
Masquer les modifications d'espaces
En ligne
Côte à côte
backend/Dockerfile
Voir le fichier @
720ecfd4
...
...
@@ -10,11 +10,14 @@ RUN apt-get update && apt-get install -y docker.io
# Copier les fichiers nécessaires
COPY
requirements.txt .
# Installer les dépendances
# Installer les dépendances
et ajouter pytest
RUN
pip
install
--no-cache-dir
-r
requirements.txt
RUN
pip
install
--no-cache-dir
pytest
# Copier le reste du code
COPY
. .
# Copier le reste du code (y compris les tests)
COPY
. /app
RUN
ls
-l
/app
# Exposer le port sur lequel Flask écoute
EXPOSE
5000
...
...
backend/test_app.py
0 → 100644
Voir le fichier @
720ecfd4
import
pytest
import
json
from
unittest.mock
import
patch
,
MagicMock
from
app
import
app
@pytest.fixture
def
client
():
app
.
config
[
"TESTING"
]
=
True
with
app
.
test_client
()
as
client
:
yield
client
def
test_health
(
client
):
response
=
client
.
get
(
"/health"
)
assert
response
.
status_code
==
200
assert
response
.
json
==
{
"status"
:
"ok"
}
@patch
(
"app.redis_client.get"
)
def
test_get_request_count
(
mock_redis_get
,
client
):
mock_redis_get
.
return_value
=
"5"
response
=
client
.
get
(
"/request_count"
)
assert
response
.
status_code
==
200
assert
response
.
json
==
{
"status"
:
"success"
,
"data"
:
{
"request_received_count"
:
5
},
"errors"
:
None
}
@patch
(
"app.redis_client.exists"
)
@patch
(
"app.redis_client.get"
)
def
test_bruteforce_cached
(
mock_redis_get
,
mock_redis_exists
,
client
):
mock_redis_exists
.
return_value
=
True
mock_redis_get
.
return_value
=
"password123"
data
=
json
.
dumps
({
"hash"
:
"5f4dcc3b5aa765d61d8327deb882cf99"
})
response
=
client
.
post
(
"/bruteforce"
,
data
=
data
,
content_type
=
"application/json"
)
assert
response
.
status_code
==
200
assert
response
.
json
==
{
"status"
:
"success"
,
"data"
:
{
"hash"
:
"5f4dcc3b5aa765d61d8327deb882cf99"
,
"original"
:
"password123"
},
"errors"
:
None
}
@patch
(
"app.redis_client.keys"
)
@patch
(
"app.redis_client.get"
)
def
test_get_resolved_hashes
(
mock_redis_get
,
mock_redis_keys
,
client
):
mock_redis_keys
.
return_value
=
[
"hash1"
,
"hash2"
]
mock_redis_get
.
side_effect
=
lambda
key
:
f
"original_
{
key
}
"
response
=
client
.
get
(
"/resolved"
)
assert
response
.
status_code
==
200
assert
response
.
json
==
{
"status"
:
"success"
,
"data"
:
{
"hash1"
:
"original_hash1"
,
"hash2"
:
"original_hash2"
},
"errors"
:
None
}
@patch
(
"app.redis_client.exists"
)
@patch
(
"app.redis_client.get"
)
def
test_get_resolved_hash
(
mock_redis_get
,
mock_redis_exists
,
client
):
mock_redis_exists
.
return_value
=
True
mock_redis_get
.
return_value
=
"password123"
response
=
client
.
get
(
"/resolved/5f4dcc3b5aa765d61d8327deb882cf99"
)
assert
response
.
status_code
==
200
assert
response
.
json
==
{
"status"
:
"success"
,
"data"
:
{
"hash"
:
"5f4dcc3b5aa765d61d8327deb882cf99"
,
"original"
:
"password123"
},
"errors"
:
None
}
@patch
(
"app.redis_client.exists"
)
def
test_get_resolved_hash_not_found
(
mock_redis_exists
,
client
):
mock_redis_exists
.
return_value
=
False
response
=
client
.
get
(
"/resolved/nonexistent_hash"
)
assert
response
.
status_code
==
404
assert
response
.
json
==
{
"status"
:
"fail"
,
"data"
:
None
,
"errors"
:
{
"message"
:
"No resolved entry found for hash: nonexistent_hash"
}
}