Files
siftlode/backend/tests/test_shorts_probe.py
peter 4aaaaa7860 chore(comments): drop epic, sprint and review-round ids from the code
The code cited its plan instead of saying why: `E28 review J4`, `(R6 S3b)`, `S1 justified…`,
`deep-review round 5`. That plan lives in the private ops repo, so for every reader of this one the
citation was noise, and a sentence whose subject was the plan step ("round 2 showed…") hid its
lesson behind an id. Each one is gone and the "why" kept: a bare citation is deleted, a sentence
carrying a lesson is reworded around it ("a later attempt showed…").

Measured (`scripts/audit_metrics.py`, product code): 652 lines in 270 files carried an epic code by
the definition the next commit holds (507 / 241 by the old, two-digit-only one) -> 0. Across all
code, tests, scripts and configs: ~1100 epic-code lines plus ~320 sprint/round ids.

Behaviour unchanged, checked mechanically: every changed .py file has the same AST once docstrings
are blanked; css/sh/toml/yml/json files are identical once comments are stripped; the only
non-comment changes in TS/JS are test titles, one description string in a contract table, and five
ESLint messages, whose text is all the gates snapshot diff holds. Not touched: Markdown (docs and
the changelog keep their history), Alembic migrations, TV episode notation (`S2 · E5`), DESIGN.md
ids (`C1`, `B4`, `S3h`), tracker ids (`SEC-16`, `DX-17`).

One stale claim fixed on the way: test_hls_reaper's docstring said the player checkpoints "every
10 s whether or not it is playing", which plex/stream.py calls wrong; it now says what the code does.
2026-10-05 00:19:39 +02:00

45 lines
1.6 KiB
Python

"""youtube/shorts.probe_is_short — three answers, and the third is not the second (was 33% covered).
A Short answers 200 at /shorts/<id>; a regular video redirects to /watch. Anything else — an error
page, a network failure — is "undetermined, ask again", never "not a Short": that would file a Short
in the normal feed for good.
"""
import httpx
import pytest
from app.youtube import shorts
def _client(respond) -> httpx.Client:
return httpx.Client(transport=httpx.MockTransport(respond))
@pytest.mark.parametrize(
("status", "expected"),
[(200, True), (301, False), (302, False), (303, False), (307, False), (308, False)]
+ [(404, None), (429, None), (500, None)],
)
def test_the_status_decides_short_regular_or_undetermined(status, expected):
seen: list[httpx.Request] = []
def respond(request: httpx.Request) -> httpx.Response:
seen.append(request)
return httpx.Response(status, headers={"location": "https://www.youtube.com/watch?v=x"})
assert shorts.probe_is_short(_client(respond), "abc123") is expected
assert str(seen[0].url) == "https://www.youtube.com/shorts/abc123"
assert len(seen) == 1 # a redirect is the answer, never followed
def test_a_network_failure_is_undetermined_not_regular():
def respond(request: httpx.Request) -> httpx.Response:
raise httpx.ConnectTimeout("slow", request=request)
assert shorts.probe_is_short(_client(respond), "abc123") is None
def test_the_client_skips_the_consent_interstitial():
with shorts.make_client() as c:
assert "SOCS=" in c.headers["cookie"]