Spaces:
Running
Running
File size: 1,323 Bytes
783a952 | 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 | import pandas as pd
import pytest
from backend.ml_module.services.storage_service import MLStorageService
@pytest.fixture
def storage_service(monkeypatch):
monkeypatch.setattr(MLStorageService, "_initialize_client", lambda self: None)
return MLStorageService()
def test_load_dataframe_by_asset_reference_uses_canonical_asset_path(storage_service, monkeypatch):
expected_df = pd.DataFrame({"a": [1], "b": [2]})
calls = {}
def _fake_load_dataframe(path: str, chunksize=None):
calls["path"] = path
calls["chunksize"] = chunksize
return expected_df
monkeypatch.setattr(storage_service, "load_dataframe", _fake_load_dataframe)
result = storage_service.load_dataframe_by_asset_reference(
tenant_id="tenant_abc",
asset_id="asset_xyz",
version=2,
filename="train.parquet",
chunksize=None,
)
assert calls["path"] == "tenant_abc/files/asset_xyz/2/train.parquet"
assert result.equals(expected_df)
def test_load_dataframe_by_asset_reference_rejects_invalid_filename(storage_service):
with pytest.raises(ValueError):
storage_service.load_dataframe_by_asset_reference(
tenant_id="tenant_abc",
asset_id="asset_xyz",
version=1,
filename="../escape.csv",
)
|