v4.10 revision to remove "legacy compatibility" code
Quality Gate / gate (push) Failing after 11s

This commit is contained in:
Jim Lancaster
2026-08-22 11:21:18 -05:00
parent cf49c3c127
commit 63c21d4a14
25 changed files with 840 additions and 301 deletions
+15 -40
View File
@@ -4,24 +4,21 @@ from transcription.ui.components.media_urls import resolve_media_url
def test_resolve_media_url_maps_managed_absolute_path_to_upload_route(tmp_path):
upload_dir = tmp_path / "uploads"
managed_path = upload_dir / "documents" / "abc" / "page.jpg"
managed_path.parent.mkdir(parents=True, exist_ok=True)
managed_path.write_bytes(b"x")
canonical_path = upload_dir / "documents" / "abc" / "page.jpg"
canonical_path.parent.mkdir(parents=True, exist_ok=True)
canonical_path.write_bytes(b"x")
resolved = resolve_media_url(str(managed_path), upload_dir=upload_dir, base_url="http://localhost:8000")
resolved = resolve_media_url("documents/abc/page.jpg", upload_dir=upload_dir, base_url="http://localhost:8000")
assert resolved == "http://localhost:8000/uploads/documents/abc/page.jpg"
def test_resolve_media_url_rejects_unmanaged_absolute_path(tmp_path):
def test_resolve_media_url_rejects_absolute_filesystem_path(tmp_path):
upload_dir = tmp_path / "uploads"
managed_path = upload_dir / "documents" / "abc" / "page.jpg"
managed_path.parent.mkdir(parents=True, exist_ok=True)
managed_path.write_bytes(b"x")
unmanaged_path = tmp_path / "other-root" / "secret" / "page.jpg"
unmanaged_path.parent.mkdir(parents=True, exist_ok=True)
unmanaged_path.write_bytes(b"x")
absolute_path = upload_dir / "documents" / "abc" / "page.jpg"
absolute_path.parent.mkdir(parents=True, exist_ok=True)
absolute_path.write_bytes(b"x")
resolved = resolve_media_url(str(unmanaged_path), upload_dir=upload_dir, base_url="http://localhost:8000")
resolved = resolve_media_url(str(absolute_path), upload_dir=upload_dir, base_url="http://localhost:8000")
assert resolved is None
@@ -36,21 +33,9 @@ def test_resolve_media_url_rejects_stale_relative_path(tmp_path):
assert resolved is None
def test_resolve_media_url_rejects_basename_collision_from_unmanaged_path(tmp_path):
def test_resolve_media_url_rejects_non_canonical_relative_path(tmp_path):
upload_dir = tmp_path / "uploads"
managed_path = upload_dir / "documents" / "abc" / "shared-name.jpg"
managed_path.parent.mkdir(parents=True, exist_ok=True)
managed_path.write_bytes(b"managed")
unmanaged_path = tmp_path / "scratch" / "shared-name.jpg"
unmanaged_path.parent.mkdir(parents=True, exist_ok=True)
unmanaged_path.write_bytes(b"unmanaged")
resolved = resolve_media_url(
str(unmanaged_path),
upload_dir=upload_dir,
base_url="http://localhost:8000",
)
resolved = resolve_media_url("shared-name.jpg", upload_dir=upload_dir, base_url="http://localhost:8000")
assert resolved is None
@@ -68,28 +53,18 @@ def test_resolve_media_url_accepts_existing_upload_relative_path(tmp_path):
assert resolved == "http://localhost:8000/uploads/documents/abc/page.jpg"
def test_resolve_media_url_accepts_existing_portraits_relative_path(tmp_path):
def test_resolve_media_url_accepts_existing_persons_relative_path(tmp_path):
upload_dir = tmp_path / "uploads"
managed_path = upload_dir / "portraits" / "person" / "seeded.png"
managed_path = upload_dir / "persons" / "person" / "seeded.png"
managed_path.parent.mkdir(parents=True, exist_ok=True)
managed_path.write_bytes(b"x")
resolved = resolve_media_url(
"portraits/person/seeded.png",
"persons/person/seeded.png",
upload_dir=upload_dir,
base_url="http://localhost:8000",
)
assert resolved == "http://localhost:8000/uploads/portraits/person/seeded.png"
def test_public_media_path_label_maps_managed_absolute_path_to_upload_route(tmp_path):
upload_dir = tmp_path / "uploads"
managed_path = upload_dir / "documents" / "abc" / "page.jpg"
managed_path.parent.mkdir(parents=True, exist_ok=True)
managed_path.write_bytes(b"x")
label = public_media_path_label(str(managed_path), upload_dir=upload_dir)
assert label == "/uploads/documents/abc/page.jpg"
assert resolved == "http://localhost:8000/uploads/persons/person/seeded.png"
def test_public_media_path_label_hides_unmanaged_absolute_path(tmp_path):