File size: 1,459 Bytes
a8c9ee8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from types import SimpleNamespace

from backend.SQL_Agent.tenant_file_toolkit import TenantFileToolkit


class _MockStorage:
    bucket_name = "ml-bucket"

    class _Client:
        @staticmethod
        def list_objects(bucket, prefix=None, recursive=True):
            return [
                SimpleNamespace(object_name="tenant_1/files/raw_data.csv", size=1024, last_modified=SimpleNamespace(strftime=lambda _f: "2026-01-01 00:00:00")),
                SimpleNamespace(object_name="tenant_1/projects/p1/models/model_v1.joblib", size=2048, last_modified=SimpleNamespace(strftime=lambda _f: "2026-01-01 00:00:00")),
                SimpleNamespace(object_name="tenant_1/projects/p1/evaluation/report_v1.md", size=1000, last_modified=SimpleNamespace(strftime=lambda _f: "2026-01-01 00:00:00")),
            ]

    client = _Client()


def test_list_tenant_assets_structured_groups_datasets_models_reports():
    toolkit = TenantFileToolkit(storage_service=_MockStorage())

    class _RunContext:
        session_state = {"tenant_id": "tenant_1"}

    result = toolkit.list_tenant_assets_structured(run_context=_RunContext())

    assert "datasets" in result
    assert "models" in result
    assert "reports" in result
    assert any(item["path"].endswith("raw_data.csv") for item in result["datasets"])
    assert any(item["path"].endswith(".joblib") for item in result["models"])
    assert any(item["path"].endswith(".md") for item in result["reports"])