refactorar para usar framework pytest, em vez de unitest

This commit is contained in:
2025-04-21 20:49:10 +01:00
parent fa377c562e
commit fb2d26820b

View File

@ -1,32 +1,70 @@
import unittest import pytest
from modules.organizer import ( from modules.organizer import (
categorizar_por_tipo, categorizar_por_tipo,
criar_pasta_destino, criar_pasta_destino,
obter_data_ficheiro, obter_data_ficheiro,
) )
import tempfile
from datetime import datetime from datetime import datetime
# import tempfile
# class TestOrganizer(unittest.TestCase):
# def test_categorizar_por_tipo(self):
# self.assertEqual(categorizar_por_tipo("imagem.jpg"), "imagem")
# self.assertEqual(categorizar_por_tipo("documento.pdf"), "documento")
# self.assertEqual(categorizar_por_tipo("video.mp4"), "video")
# self.assertEqual(categorizar_por_tipo("ficheiro.zip"), "outros")
# self.assertEqual(categorizar_por_tipo("audio.mp3"), "audio")
#
# def test_criar_pasta_destino(self):
# with tempfile.TemporaryDirectory() as tmp_dir:
# path = criar_pasta_destino(tmp_dir, "imagem")
# self.assertTrue(path.exists())
# self.assertTrue(path.is_dir())
#
# def test_obter_data_ficheiro(self):
# with tempfile.NamedTemporaryFile() as tmp_file:
# data_mod = obter_data_ficheiro(tmp_file.name, usar_criacao=False)
# self.assertIsInstance(data_mod, datetime)
#
#
# if __name__ == "__main__":
# unittest.main()
class TestOrganizer(unittest.TestCase): @pytest.mark.parametrize(
def test_categorizar_por_tipo(self): "ficheiro, esperado",
self.assertEqual(categorizar_por_tipo("imagem.jpg"), "imagem") [
self.assertEqual(categorizar_por_tipo("documento.pdf"), "documento") ("foto.jpeg", "imagem"),
self.assertEqual(categorizar_por_tipo("video.mp4"), "video") ("documento.docx", "documento"),
self.assertEqual(categorizar_por_tipo("ficheiro.zip"), "outros") ("video.mp4", "video"),
self.assertEqual(categorizar_por_tipo("audio.mp3"), "audio") ("musica.mp3", "audio"),
("ficheiro.xyz", "outros"),
def test_criar_pasta_destino(self): ],
with tempfile.TemporaryDirectory() as tmp_dir: )
path = criar_pasta_destino(tmp_dir, "imagem") def test_categorizar_por_tipo(ficheiro, esperado):
self.assertTrue(path.exists()) assert categorizar_por_tipo(ficheiro) == esperado
self.assertTrue(path.is_dir())
def test_obter_data_ficheiro(self):
with tempfile.NamedTemporaryFile() as tmp_file:
data_mod = obter_data_ficheiro(tmp_file.name, usar_criacao=False)
self.assertIsInstance(data_mod, datetime)
if __name__ == "__main__": def test_obter_data_ficheiro(tmp_path):
unittest.main() ficheiro = tmp_path / "teste.txt"
ficheiro.write_text("conteudo")
# teste data de modificação
data_mod = obter_data_ficheiro(str(ficheiro), usar_criacao=False)
assert isinstance(data_mod, datetime)
# testar data de criação
data_criacao = obter_data_ficheiro(str(ficheiro), usar_criacao=True)
assert isinstance(data_criacao, datetime)
def test_criar_pasta_destino(tmp_path):
pasta = criar_pasta_destino(str(tmp_path), "documento")
assert pasta.exists()
assert pasta.is_dir()
pasta_com_data = criar_pasta_destino(
str(tmp_path), "imagem", datetime.now(), "%Y-%m-%d"
)
assert pasta_com_data.exists()
assert pasta_com_data.is_dir()