Files
kaledonya-clips/intake/tests/test_remux.py
T

41 lines
1.1 KiB
Python

import shutil
import subprocess
import pytest
from app.remux import remux_to_mp4
needs_ffmpeg = pytest.mark.skipif(shutil.which("ffmpeg") is None, reason="ffmpeg not installed")
def make_mkv(path):
subprocess.run(
["ffmpeg", "-v", "error", "-y",
"-f", "lavfi", "-i", "testsrc=size=320x240:rate=30",
"-f", "lavfi", "-i", "sine=frequency=440",
"-t", "1", "-c:v", "libx264", "-c:a", "aac", str(path)],
check=True,
)
@needs_ffmpeg
def test_remux_good_mkv(tmp_path):
src, dst = tmp_path / "in.mkv", tmp_path / "out.mp4"
make_mkv(src)
assert remux_to_mp4(src, dst) is True
assert dst.read_bytes()[4:8] == b"ftyp"
def test_remux_garbage_returns_false(tmp_path):
src, dst = tmp_path / "in.mkv", tmp_path / "out.mp4"
src.write_bytes(b"not a video at all")
assert remux_to_mp4(src, dst) is False
assert not dst.exists()
def test_remux_missing_ffmpeg_returns_false(tmp_path, monkeypatch):
monkeypatch.setenv("PATH", "")
src, dst = tmp_path / "in.mkv", tmp_path / "out.mp4"
src.write_bytes(b"x")
assert remux_to_mp4(src, dst) is False