File size: 994 Bytes
db7ff99
 
 
 
 
 
4b22893
db7ff99
 
 
 
 
 
 
 
 
 
 
4b22893
db7ff99
 
 
 
 
 
 
 
 
 
4b22893
db7ff99
 
 
 
 
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
import pytest
from unittest.mock import patch, MagicMock

from src.model.model import load_model


# HF OK
@patch("src.model.model.joblib.load")
@patch("src.model.model.hf_hub_download")
def test_load_model_from_hf(mock_hf, mock_joblib):
    mock_hf.return_value = "fake_path.joblib"
    mock_joblib.return_value = "MODEL"

    model = load_model()

    assert model == "MODEL"


# HF échoue → MLflow OK
@patch("src.model.model.hf_hub_download", side_effect=Exception("HF fail"))
@patch("mlflow.sklearn.load_model")
def test_load_model_fallback_mlflow(mock_mlflow, mock_hf):
    mock_mlflow.return_value = "MLFLOW_MODEL"

    model = load_model()

    assert model == "MLFLOW_MODEL"


# Tout échoue → FileNotFoundError
@patch("src.model.model.hf_hub_download", side_effect=Exception("HF fail"))
@patch("mlflow.sklearn.load_model", side_effect=Exception("MLflow fail"))
def test_load_model_raises_error(mock_mlflow, mock_hf):
    with pytest.raises(FileNotFoundError):
        load_model()