testes para função 'gerar_assinatura_SHA256_ficheiro()'
This commit is contained in:
63
tests/test_utils.py
Normal file
63
tests/test_utils.py
Normal file
@ -0,0 +1,63 @@
|
||||
import pytest
|
||||
from modules.utils import gerar_assinatura_SHA256_ficheiro
|
||||
import hashlib
|
||||
|
||||
|
||||
def test_gerar_assinatura_SHA256_ficheiro(tmp_path):
|
||||
# criar ficheiro temporario
|
||||
ficheiro = tmp_path / "teste.txt"
|
||||
conteudo = "Conteudo de teste"
|
||||
ficheiro.write_text(conteudo)
|
||||
# gerar assinatura usando a função 'gerar_assinatura_SHA256_ficheiro()'
|
||||
assinatura_funcao = gerar_assinatura_SHA256_ficheiro(str(ficheiro))
|
||||
# gerar assinatura manualmente para comparar
|
||||
with open(ficheiro, "rb") as f:
|
||||
assinatura_manual = hashlib.sha256(f.read()).hexdigest()
|
||||
# verificar se ambas as assinaturas coincidem
|
||||
assert assinatura_funcao == assinatura_manual
|
||||
|
||||
|
||||
def test_gerar_assinatura_SHA256_ficheiro_inexistente():
|
||||
# testar comportamento se ficheiro não existir
|
||||
with pytest.raises(FileNotFoundError):
|
||||
gerar_assinatura_SHA256_ficheiro("ficheiro_que_nao_existe.txt")
|
||||
|
||||
|
||||
def test_gerar_assinatura_SHA256_ficheiro_grande(tmp_path):
|
||||
ficheiro_grande = tmp_path / "grande.txt"
|
||||
conteudo = "ABCDE" * 10**5 # muito conteudo
|
||||
ficheiro_grande.write_text(conteudo)
|
||||
|
||||
assinatura_funcao = gerar_assinatura_SHA256_ficheiro(str(ficheiro_grande))
|
||||
|
||||
with open(ficheiro_grande, "rb") as f:
|
||||
assinatura_manual = hashlib.sha256(f.read()).hexdigest()
|
||||
|
||||
assert assinatura_funcao == assinatura_manual
|
||||
|
||||
|
||||
def test_gerar_assinatura_SHA256_ficheiro_binario(tmp_path):
|
||||
ficheiro_binario = tmp_path / "ficheiro.bin"
|
||||
conteudo_binario = bytes(range(256)) # cria bytes de 0 a 255
|
||||
ficheiro_binario.write_bytes(conteudo_binario)
|
||||
|
||||
assinatura_funcao = gerar_assinatura_SHA256_ficheiro(str(ficheiro_binario))
|
||||
|
||||
with open(ficheiro_binario, "rb") as f:
|
||||
assinatura_manual = hashlib.sha256(f.read()).hexdigest()
|
||||
|
||||
assert assinatura_funcao == assinatura_manual
|
||||
|
||||
|
||||
def test_gerar_assinatura_SHA256_ficheiros_iguais(tmp_path):
|
||||
ficheiro1 = tmp_path / "ficheiro1.txt"
|
||||
ficheiro2 = tmp_path / "ficheiro2.txt"
|
||||
conteudo = "Conteudo igual nos dois ficheiros"
|
||||
|
||||
ficheiro1.write_text(conteudo)
|
||||
ficheiro2.write_text(conteudo)
|
||||
|
||||
assinatura1 = gerar_assinatura_SHA256_ficheiro(str(ficheiro1))
|
||||
assinatura2 = gerar_assinatura_SHA256_ficheiro(str(ficheiro2))
|
||||
|
||||
assert assinatura1 == assinatura2
|
||||
Reference in New Issue
Block a user