From 7cdc637527848518bff6d8544aed41703e0b0bb4 Mon Sep 17 00:00:00 2001 From: Shuming Liu Date: Sun, 30 Aug 2026 11:19:57 +0800 Subject: [PATCH] fixed a bug --- sentence_api/repository.py | 2 +- sentence_api/tests/test_api.py | 29 +++++++++++++++++++---------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/sentence_api/repository.py b/sentence_api/repository.py index 9fe7413..b9565e4 100644 --- a/sentence_api/repository.py +++ b/sentence_api/repository.py @@ -458,7 +458,7 @@ class VideoRepository: """, ( normalized_hash, - replacement.index, + sentence_index + replacement.index, replacement.start_ms, replacement.end_ms, replacement.text, diff --git a/sentence_api/tests/test_api.py b/sentence_api/tests/test_api.py index 8edc519..bde09f7 100644 --- a/sentence_api/tests/test_api.py +++ b/sentence_api/tests/test_api.py @@ -206,24 +206,32 @@ def test_admin_can_split_sentence_and_reindexes_following_sentences(tmp_path): repository.save_processing_result( SentenceBoundaryDocument( video_hash=VIDEO_HASH, - duration_ms=9000, + duration_ms=12000, algorithm_version="test", sentences=[ SentenceBoundary( index=0, start_ms=0, - end_ms=4000, - text="First part second part", + end_ms=2000, + text="Before.", language="en", - reference_speech_duration_ms=3600, + reference_speech_duration_ms=1800, ), SentenceBoundary( index=1, - start_ms=4000, + start_ms=2000, end_ms=9000, + text="First part second part", + language="en", + reference_speech_duration_ms=6600, + ), + SentenceBoundary( + index=2, + start_ms=9000, + end_ms=12000, text="Next sentence.", language="en", - reference_speech_duration_ms=4600, + reference_speech_duration_ms=2800, ), ], ), @@ -242,23 +250,24 @@ def test_admin_can_split_sentence_and_reindexes_following_sentences(tmp_path): ) ) response = client.put( - f"/api/v1/admin/videos/{VIDEO_HASH}/sentences/0/split", + f"/api/v1/admin/videos/{VIDEO_HASH}/sentences/1/split", json={"text": "First part\nsecond part", "language": "en"}, ) assert response.status_code == 200 replacements = response.json() assert [item["text"] for item in replacements] == ["First part", "second part"] - assert replacements[0]["start_ms"] == 0 + assert replacements[0]["start_ms"] == 2000 assert replacements[0]["end_ms"] == replacements[1]["start_ms"] - assert replacements[1]["end_ms"] == 4000 + assert replacements[1]["end_ms"] == 9000 document = repository.get_document(VIDEO_HASH) assert [item.text for item in document.sentences] == [ + "Before.", "First part", "second part", "Next sentence.", ] - assert [item.index for item in document.sentences] == [0, 1, 2] + assert [item.index for item in document.sentences] == [0, 1, 2, 3] def test_admin_boundary_adjustment_updates_linked_next_start(tmp_path):