Signed-off-by: RyanYun09 <RyanYun09@users.noreply.github.com> Co-authored-by: RyanYun09 <RyanYun09@users.noreply.github.com> Co-authored-by: amy-why-3459 <wuhaiyan17@huawei.com>
68 lines
2.8 KiB
Python
68 lines
2.8 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project
|
|
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from vllm_omni.benchmarks.duplex.omni_duplex_eval_media import materialize_media
|
|
|
|
pytestmark = [pytest.mark.core_model, pytest.mark.cpu]
|
|
|
|
|
|
def test_dict_with_bytes_materializes_a_real_file(tmp_path):
|
|
# A Hugging Face Audio/Video feature value {"bytes": ..., "path": ...} used
|
|
# to short-circuit on ``path`` (the artifact name inside the dataset, which
|
|
# does not exist on disk), so downstream ffmpeg saw a missing file. Inline
|
|
# bytes must win and be written to a real file whose content equals bytes.
|
|
payload = b"\x00\xff\x01RIFFfake-content"
|
|
resolved = materialize_media({"bytes": payload, "path": "question_audio.wav"}, tmp_path, "s1_question", ".wav")
|
|
assert resolved.is_file()
|
|
assert resolved.read_bytes() == payload
|
|
assert resolved.parent == tmp_path
|
|
assert resolved.name == "s1_question.wav"
|
|
|
|
|
|
def test_dict_extension_comes_from_path_safely(tmp_path):
|
|
payload = b"flac-ish-bytes"
|
|
resolved = materialize_media({"bytes": payload, "path": "audio/clip.FLAC"}, tmp_path, "s1", ".wav")
|
|
assert resolved.name == "s1.flac"
|
|
assert resolved.read_bytes() == payload
|
|
# A path with no usable extension falls back to the caller's suffix.
|
|
resolved = materialize_media({"bytes": payload, "path": "audio/clip"}, tmp_path, "s2", ".wav")
|
|
assert resolved.name == "s2.wav"
|
|
assert resolved.read_bytes() == payload
|
|
|
|
|
|
def test_materialization_is_idempotent_and_updated(tmp_path):
|
|
payload = b"abc"
|
|
first = materialize_media({"bytes": payload, "path": "q.wav"}, tmp_path, "s", ".wav")
|
|
second = materialize_media({"bytes": payload, "path": "q.wav"}, tmp_path, "s", ".wav")
|
|
assert first == second
|
|
assert first.read_bytes() == payload
|
|
replacement = b"xyz"
|
|
third = materialize_media({"bytes": replacement, "path": "q.wav"}, tmp_path, "s", ".wav")
|
|
assert third == first
|
|
assert third.read_bytes() == replacement
|
|
|
|
|
|
def test_str_path_and_path_only_mapping_returned_as_is(tmp_path):
|
|
existing = tmp_path / "clip.mp4"
|
|
existing.write_bytes(b"video")
|
|
assert materialize_media(str(existing), tmp_path, "s", ".mp4") == existing
|
|
assert materialize_media({"path": str(existing)}, tmp_path, "s", ".mp4") == existing
|
|
|
|
|
|
def test_raw_bytes_value_is_written(tmp_path):
|
|
payload = b"raw-media"
|
|
resolved = materialize_media(payload, tmp_path, "r", ".bin")
|
|
assert resolved.name == "r.bin"
|
|
assert resolved.read_bytes() == payload
|
|
|
|
|
|
def test_unresolvable_value_raises_clear_error(tmp_path):
|
|
with pytest.raises(ValueError, match="cannot materialize"):
|
|
materialize_media(None, tmp_path, "s", ".wav")
|
|
with pytest.raises(ValueError, match="cannot materialize"):
|
|
materialize_media({"path": None}, tmp_path, "s", ".wav")
|