From fb2d26820b5c5b70a15b895f3268c3b932125786 Mon Sep 17 00:00:00 2001 From: Luis Rodrigues Date: Mon, 21 Apr 2025 20:49:10 +0100 Subject: [PATCH] refactorar para usar framework pytest, em vez de unitest --- tests/test_organizer.py | 82 ++++++++++++++++++++++++++++++----------- 1 file changed, 60 insertions(+), 22 deletions(-) diff --git a/tests/test_organizer.py b/tests/test_organizer.py index 16ced38..d10a526 100644 --- a/tests/test_organizer.py +++ b/tests/test_organizer.py @@ -1,32 +1,70 @@ -import unittest +import pytest from modules.organizer import ( categorizar_por_tipo, criar_pasta_destino, obter_data_ficheiro, ) -import tempfile 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): - 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) +@pytest.mark.parametrize( + "ficheiro, esperado", + [ + ("foto.jpeg", "imagem"), + ("documento.docx", "documento"), + ("video.mp4", "video"), + ("musica.mp3", "audio"), + ("ficheiro.xyz", "outros"), + ], +) +def test_categorizar_por_tipo(ficheiro, esperado): + assert categorizar_por_tipo(ficheiro) == esperado -if __name__ == "__main__": - unittest.main() +def test_obter_data_ficheiro(tmp_path): + 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()