File size: 1,844 Bytes
898ed62
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
"""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)