testes para função 'gerar_assinatura_SHA256_ficheiro()'

This commit is contained in:
2025-04-26 19:19:27 +01:00
parent 8f5c136e5a
commit 446cd24c74

63
tests/test_utils.py Normal file
View 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