All checks were successful
Deploy Development / deploy (push) Successful in 34s
Test Suite / pytest-backend (push) Successful in 25s
Test Suite / lint-backend (push) Successful in 0s
Test Suite / build-frontend (push) Successful in 8s
Test Suite / playwright-tests (push) Successful in 23s
- library/club/c{id}/private/* und …/shared/* (club visibility)
- Private Archiv-Upload: effective_club_id oder club_id Form; Plattform braucht Header
- media_assets.club_id bei private gesetzt; Dedupe pro Verein
- Übungs-Upload: dedupe_club für private aus exercise.club_id oder Mandant
- PATCH: club_id für private erhalten; Relocate inkl. private
- version 0.8.53
Co-authored-by: Cursor <cursoragent@cursor.com>
55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
"""library_storage_key: Mandantenpfade unter MEDIA_ROOT."""
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from media_storage import library_storage_key
|
|
|
|
_HEX64 = "a" * 64
|
|
|
|
|
|
def test_library_storage_key_private_under_club() -> None:
|
|
assert library_storage_key("private", 7, _HEX64, ".jpg") == f"library/club/c7/private/{_HEX64}.jpg"
|
|
|
|
|
|
def test_library_storage_key_shared_under_club() -> None:
|
|
assert library_storage_key("club", 42, _HEX64, ".png") == f"library/club/c42/shared/{_HEX64}.png"
|
|
|
|
|
|
def test_library_storage_key_official() -> None:
|
|
assert library_storage_key("official", None, _HEX64, ".mp4") == f"library/official/{_HEX64}.mp4"
|
|
|
|
|
|
def test_library_storage_key_normalizes_visibility() -> None:
|
|
assert library_storage_key(" CLUB ", 1, _HEX64, "pdf") == f"library/club/c1/shared/{_HEX64}.pdf"
|
|
|
|
|
|
def test_library_storage_key_private_requires_club() -> None:
|
|
with pytest.raises(ValueError, match="Verein"):
|
|
library_storage_key("private", None, _HEX64, ".jpg")
|
|
|
|
|
|
def test_library_storage_key_club_requires_id() -> None:
|
|
with pytest.raises(ValueError, match="Verein"):
|
|
library_storage_key("club", None, _HEX64, ".jpg")
|
|
|
|
|
|
def test_library_storage_key_club_id_positive() -> None:
|
|
with pytest.raises(ValueError, match="positiv"):
|
|
library_storage_key("club", 0, _HEX64, ".jpg")
|
|
|
|
|
|
def test_library_storage_key_invalid_visibility() -> None:
|
|
with pytest.raises(ValueError, match="Sichtbarkeit"):
|
|
library_storage_key("public", 1, _HEX64, ".jpg")
|
|
|
|
|
|
def test_library_storage_key_invalid_sha() -> None:
|
|
with pytest.raises(ValueError, match="64"):
|
|
library_storage_key("private", 1, "deadbeef", ".jpg")
|
|
|
|
|
|
def test_library_storage_key_extension_sanitized() -> None:
|
|
with pytest.raises(ValueError):
|
|
library_storage_key("private", 1, _HEX64, "../x")
|