From 1abac8f85ac5694cdca127e546d72cc9fca1f5f8 Mon Sep 17 00:00:00 2001 From: Luis Rodrigues Date: Mon, 21 Apr 2025 21:01:22 +0100 Subject: [PATCH] refactorar para usar framework pytest, em vez de unittest --- tests/test_scanner.py | 76 ++++++++++++++++++++++++++++++++----------- 1 file changed, 57 insertions(+), 19 deletions(-) diff --git a/tests/test_scanner.py b/tests/test_scanner.py index 12fe2f4..6be2e9c 100644 --- a/tests/test_scanner.py +++ b/tests/test_scanner.py @@ -1,25 +1,63 @@ -import unittest -import tempfile +# import unittest from pathlib import Path +from py import path +import pytest + +# import tempfile from modules.scanner import listar_ficheiros -class TestScanner(unittest.TestCase): - def setUp(self) -> None: - # criar derectorio temporario - self.temp_dir = tempfile.TemporaryDirectory() - (Path(self.temp_dir.name) / "teste.txt").touch() - (Path(self.temp_dir.name) / "imagem.jpg").touch() - - def tearDown(self) -> None: - self.temp_dir.cleanup() - - def test_listar_ficheiros(self): - ficheiros = listar_ficheiros(self.temp_dir.name) - self.assertEqual(len(ficheiros), 2) - for f in ficheiros: - self.assertTrue(Path(f).exists()) +# class TestScanner(unittest.TestCase): +# def setUp(self) -> None: +# # criar derectorio temporario +# self.temp_dir = tempfile.TemporaryDirectory() +# (Path(self.temp_dir.name) / "teste.txt").touch() +# (Path(self.temp_dir.name) / "imagem.jpg").touch() +# +# def tearDown(self) -> None: +# self.temp_dir.cleanup() +# +# def test_listar_ficheiros(self): +# ficheiros = listar_ficheiros(self.temp_dir.name) +# self.assertEqual(len(ficheiros), 2) +# for f in ficheiros: +# self.assertTrue(Path(f).exists()) +# +# +# if __name__ == "__main__": +# unittest.main() -if __name__ == "__main__": - unittest.main() +def test_listar_ficheiros_vazio(tmp_path): + ficheiros = listar_ficheiros(str(tmp_path)) + assert ficheiros == [] + + +def test_listar_ficheiros_simples(tmp_path): + # criar ficheiros + ficheiro1 = tmp_path / "ficheiro1.txt" + ficheiro1.write_text("texto") + + ficheiro2 = tmp_path / "ficheiro2.mpg" + ficheiro2.write_text("ficheiro de video") + + ficheiros = listar_ficheiros(str(tmp_path)) + nomes = [Path(f).name for f in ficheiros] + + assert len(ficheiros) == 2 + assert "ficheiro1.txt" in nomes + assert "ficheiro2.mpg" in nomes + + +def test_listar_ficheiros_em_subpastas(tmp_path): + subpasta = tmp_path / "subpasta" + subpasta.mkdir() + + ficheiro_sub = subpasta / "ficheiro_sub.txt" + ficheiro_sub.write_text("conteudo na subpasta") + + ficheiros = listar_ficheiros(str(tmp_path)) + nome = [Path(f).name for f in ficheiros] + + assert len(ficheiros) == 1 + assert "ficheiro_sub.txt" in nome