Markdown / tests /test_converter.py
GauthierDemonchy
Premier commit propre
898ed62
Raw
History Blame Contribute Delete
1.84 kB
"""Tests pour converter.py — wrapper MarkItDown."""
import tempfile
from unittest.mock import MagicMock, patch
import converter
@patch.object(converter, "_converter")
def test_convert_returns_markdown_text(mock_converter):
"""convert() doit retourner le text_content du résultat MarkItDown."""
mock_result = MagicMock()
mock_result.text_content = "# Hello World"
mock_converter.convert.return_value = mock_result
with tempfile.NamedTemporaryFile(suffix=".txt", delete=True) as f:
result = converter.convert(f.name)
assert result == "# Hello World"
mock_converter.convert.assert_called_once()
def test_convert_file_not_found():
"""convert() doit lever FileNotFoundError si le fichier n'existe pas."""
try:
converter.convert("/chemin/inexistant/fichier.xlsx")
assert False, "Devrait avoir levé une exception"
except FileNotFoundError as e:
assert "Fichier introuvable" in str(e)
def test_convert_path_is_directory():
"""convert() doit lever ValueError si le chemin est un dossier."""
with tempfile.TemporaryDirectory() as tmpdir:
try:
converter.convert(tmpdir)
assert False, "Devrait avoir levé une exception"
except ValueError as e:
assert "n'est pas un fichier" in str(e)
@patch.object(converter, "_converter")
def test_convert_raises_original_exception(mock_converter):
"""convert() doit relayer les exceptions du convertisseur sous-jacent."""
mock_converter.convert.side_effect = RuntimeError("something went wrong")
with tempfile.NamedTemporaryFile(suffix=".xlsx", delete=True) as f:
try:
converter.convert(f.name)
assert False, "Devrait avoir levé une exception"
except Exception as e:
assert "something went wrong" in str(e)