Spaces:
Paused
Paused
| """Tests for local object storage backend.""" | |
| import tempfile | |
| from pathlib import Path | |
| from app.core.storage import LocalStorageBackend, S3StorageBackend, avatar_key | |
| def test_local_storage_put_and_url(): | |
| with tempfile.TemporaryDirectory() as tmp: | |
| storage = LocalStorageBackend(base_dir=tmp, url_prefix="/uploads") | |
| url = storage.put_bytes("avatars/test.jpg", b"data", "image/jpeg") | |
| assert url == "/uploads/avatars/test.jpg" | |
| assert storage.public_url("avatars/test.jpg") == "/uploads/avatars/test.jpg" | |
| assert (Path(tmp) / "avatars" / "test.jpg").read_bytes() == b"data" | |
| def test_avatar_key_format(): | |
| assert avatar_key(5, "abc.jpg") == "avatars/user-5-abc.jpg" | |
| def test_s3_public_url_normalizes_key_slashes(): | |
| storage = object.__new__(S3StorageBackend) | |
| storage._public_base = "https://cdn.example.com" | |
| assert storage.public_url("/assets/images/test.png") == "https://cdn.example.com/assets/images/test.png" | |