File size: 1,328 Bytes
2fe4365
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
"""Tests de _signature_correspond_extension (Algorithms/document_validator.py) :
verifie le contenu reel d'un fichier televerse plutot que sa seule extension."""
import pytest

from Algorithms.document_validator import _signature_correspond_extension


def test_pdf_valide():
    assert _signature_correspond_extension(b"%PDF-1.7\n...", ".pdf") is True


def test_png_valide():
    assert _signature_correspond_extension(b"\x89PNG\r\n\x1a\n...", ".png") is True


def test_jpeg_valide():
    assert _signature_correspond_extension(b"\xff\xd8\xff\xe0...", ".jpg") is True
    assert _signature_correspond_extension(b"\xff\xd8\xff\xe0...", ".jpeg") is True


def test_fichier_renomme_rejete():
    """Un .exe renomme en .pdf ne doit pas passer la verification."""
    assert _signature_correspond_extension(b"MZ\x90\x00...", ".pdf") is False


def test_texte_brut_renomme_en_png_rejete():
    assert _signature_correspond_extension(b"ceci n'est pas une image", ".png") is False


def test_extension_non_surveillee_toujours_acceptee():
    """Pas de blocage sur un type non couvert par la liste (evite les faux negatifs)."""
    assert _signature_correspond_extension(b"peu importe le contenu", ".docx") is True


def test_fichier_vide_rejete_pour_type_surveille():
    assert _signature_correspond_extension(b"", ".pdf") is False