fixed a bug:translate maybe timeout
This commit is contained in:
@@ -268,6 +268,53 @@ def test_subtitle_translation_uses_full_document_and_is_cached(tmp_path, monkeyp
|
||||
assert requested[0][0] == [(0, "Hello."), (1, "Nice to meet you.")]
|
||||
|
||||
|
||||
def test_subtitle_translation_is_shared_with_other_users(tmp_path, monkeypatch):
|
||||
client = make_client(tmp_path)
|
||||
_ready_video(client.app.state.video_repository)
|
||||
requested = []
|
||||
|
||||
def translate_sentences(sentences, **kwargs):
|
||||
requested.append((sentences, kwargs))
|
||||
return {index: f"中文{index}" for index, _text in sentences}
|
||||
|
||||
class StubAITutor:
|
||||
pass
|
||||
|
||||
stub = StubAITutor()
|
||||
stub.translate_sentences = translate_sentences
|
||||
monkeypatch.setattr(client.app.state, "ai_tutor", stub)
|
||||
|
||||
first = client.post(f"/api/v1/videos/{VIDEO_HASH}/subtitle-translation")
|
||||
assert first.status_code == 200, first.text
|
||||
|
||||
stored = client.get(f"/api/v1/videos/{VIDEO_HASH}/subtitle-translation")
|
||||
assert stored.status_code == 200
|
||||
assert stored.json() == first.json()
|
||||
|
||||
other = TestClient(client.app)
|
||||
signup = other.post(
|
||||
"/api/v1/auth/register",
|
||||
json={"username": "viewer2", "password": "password-123"},
|
||||
)
|
||||
assert signup.status_code == 201, signup.text
|
||||
other.headers.update({"Authorization": f"Bearer {signup.json()['token']}"})
|
||||
|
||||
shared = other.get(f"/api/v1/videos/{VIDEO_HASH}/subtitle-translation")
|
||||
assert shared.status_code == 200
|
||||
assert shared.json()["translations"] == [
|
||||
{"index": 0, "zh_text": "中文0"},
|
||||
{"index": 1, "zh_text": "中文1"},
|
||||
]
|
||||
boundaries = other.get(f"/api/v1/videos/{VIDEO_HASH}/sentence-boundaries")
|
||||
assert boundaries.status_code == 200
|
||||
assert [item["zh_text"] for item in boundaries.json()["sentences"]] == ["中文0", "中文1"]
|
||||
|
||||
reused = other.post(f"/api/v1/videos/{VIDEO_HASH}/subtitle-translation")
|
||||
assert reused.status_code == 200
|
||||
assert reused.json() == first.json()
|
||||
assert len(requested) == 1
|
||||
|
||||
|
||||
def test_oss_video_url_is_used_for_catalog_and_content(tmp_path):
|
||||
index_path = tmp_path / "boundaries.json"
|
||||
index_path.write_text("{}", encoding="utf-8")
|
||||
|
||||
Reference in New Issue
Block a user