29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
from pathlib import Path
|
|
from types import SimpleNamespace
|
|
|
|
from app.services.storage_service import StorageService
|
|
|
|
|
|
def test_persist_dataset_file_records_metadata(monkeypatch, tmp_path) -> None:
|
|
monkeypatch.setattr(
|
|
"app.services.storage_service.get_settings",
|
|
lambda: SimpleNamespace(storage_root=str(tmp_path)),
|
|
)
|
|
|
|
metadata = StorageService.persist_dataset_file(
|
|
project_id="project-123",
|
|
dataset_id="dataset-456",
|
|
dataset_type="vector",
|
|
original_filename="../weird name!@#.geojson",
|
|
content=b"example-bytes",
|
|
content_type="application/geo+json",
|
|
)
|
|
|
|
assert metadata["original_filename"] == "weird name___.geojson"
|
|
assert metadata["stored_filename"] == "dataset-456_weird name___.geojson"
|
|
assert metadata["content_type"] == "application/geo+json"
|
|
assert metadata["size_bytes"] == 13
|
|
assert len(metadata["checksum_sha256"]) == 64
|
|
assert Path(metadata["storage_path"]).exists()
|
|
assert str(Path(tmp_path, "uploads", "project-123", "vector", "dataset-456")) in metadata["storage_path"]
|