Skip to content

Commit b9feabd

Browse files
committed
Update tests for writegear option builder
Refactors recording option tests to target `build_writegear_options` directly instead of `RecordingSettings.writegear_options`, and aligns expectations with the newer option types/shape (numeric fps/crf values and explicit fast-encoding overrides). Also updates recording manager assertions to validate recorder codec/crf fields and narrowed writer overrides for x264 fast encoding.
1 parent 9c32b26 commit b9feabd

2 files changed

Lines changed: 76 additions & 30 deletions

File tree

‎tests/gui/test_rec_manager.py‎

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -411,15 +411,20 @@ def test_start_all_passes_writegear_options(
411411
recording_settings.fast_encoding = True
412412

413413
mgr = RecordingManager()
414-
mgr.start_all(recording_settings, _active_cams_two, current_frames, session_name="Sess")
414+
mgr.start_all(
415+
recording_settings,
416+
_active_cams_two,
417+
current_frames,
418+
session_name="Sess",
419+
)
415420

416421
for cam in _active_cams_two:
417422
cam_id = get_camera_id(cam)
418423
rec = mgr.recorders[cam_id]
419424

420-
opts_ovrr = rec.writer_options_overrides
421-
assert opts_ovrr is not None
422-
assert opts_ovrr["-vcodec"] == "libx264"
423-
assert opts_ovrr["-crf"] == "23"
424-
assert opts_ovrr["-preset"] == "ultrafast"
425-
assert opts_ovrr["-tune"] == "zerolatency"
425+
assert rec.codec == "libx264"
426+
assert rec.crf == 23
427+
assert rec.writer_options_overrides == {
428+
"-preset": "ultrafast",
429+
"-tune": "zerolatency",
430+
}

‎tests/test_config.py‎

Lines changed: 64 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import pytest
22

33
from dlclivegui.config import (
4+
DEFAULT_RECORDING_FPS,
45
ApplicationSettings,
56
CameraSettings,
67
CameraTriggerSettings,
78
MultiCameraSettings,
89
RecordingSettings,
910
)
11+
from dlclivegui.services.video_recorder import build_writegear_options
1012

1113

1214
@pytest.mark.unit
@@ -76,43 +78,82 @@ def test_trigger_source_defaults_to_auto():
7678
assert trigger.source == "auto"
7779

7880

79-
def test_recording_settings_writegear_options_default():
80-
settings = RecordingSettings(codec="libx264", crf=23, fast_encoding=False)
81+
def test_build_writegear_options_default():
82+
settings = RecordingSettings(
83+
codec="libx264",
84+
crf=23,
85+
fast_encoding=False,
86+
)
8187

82-
opts = settings.writegear_options(100.0)
88+
opts = build_writegear_options(
89+
frame_rate=100.0,
90+
codec=settings.codec,
91+
crf=settings.crf,
92+
overrides=settings.writegear_overrides(),
93+
)
8394

84-
assert opts["-input_framerate"] == "100.000000"
85-
assert opts["-vcodec"] == "libx264"
86-
assert opts["-crf"] == "23"
87-
assert "-preset" not in opts
88-
assert "-tune" not in opts
95+
assert opts == {
96+
"-input_framerate": 100.0,
97+
"-vcodec": "libx264",
98+
"-crf": 23,
99+
}
89100

90101

91-
def test_recording_settings_writegear_options_fast_encoding_x264():
92-
settings = RecordingSettings(codec="libx264", crf=23, fast_encoding=True)
102+
def test_build_writegear_options_fast_encoding_x264():
103+
settings = RecordingSettings(
104+
codec="libx264",
105+
crf=23,
106+
fast_encoding=True,
107+
)
93108

94-
opts = settings.writegear_options(100.0)
109+
opts = build_writegear_options(
110+
frame_rate=100.0,
111+
codec=settings.codec,
112+
crf=settings.crf,
113+
overrides=settings.writegear_overrides(),
114+
)
95115

96-
assert opts["-input_framerate"] == "100.000000"
97-
assert opts["-vcodec"] == "libx264"
98-
assert opts["-crf"] == "23"
99-
assert opts["-preset"] == "ultrafast"
100-
assert opts["-tune"] == "zerolatency"
116+
assert opts == {
117+
"-input_framerate": 100.0,
118+
"-vcodec": "libx264",
119+
"-crf": 23,
120+
"-preset": "ultrafast",
121+
"-tune": "zerolatency",
122+
}
101123

102124

103-
def test_recording_settings_writegear_options_fast_encoding_nvenc_no_x264_options():
104-
settings = RecordingSettings(codec="h264_nvenc", crf=23, fast_encoding=True)
125+
def test_build_writegear_options_fast_encoding_nvenc():
126+
settings = RecordingSettings(
127+
codec="h264_nvenc",
128+
crf=23,
129+
fast_encoding=True,
130+
)
105131

106-
opts = settings.writegear_options(100.0)
132+
opts = build_writegear_options(
133+
frame_rate=100.0,
134+
codec=settings.codec,
135+
crf=settings.crf,
136+
overrides=settings.writegear_overrides(),
137+
)
107138

139+
assert opts["-input_framerate"] == 100.0
108140
assert opts["-vcodec"] == "h264_nvenc"
141+
assert opts["-crf"] == 23
109142
assert "-preset" not in opts
110143
assert "-tune" not in opts
111144

112145

113-
def test_recording_settings_writegear_options_invalid_fps_falls_back_to_30():
114-
settings = RecordingSettings(codec="libx264", crf=23)
146+
def test_build_writegear_options_invalid_fps_uses_default():
147+
settings = RecordingSettings(
148+
codec="libx264",
149+
crf=23,
150+
)
115151

116-
opts = settings.writegear_options(None)
152+
opts = build_writegear_options(
153+
frame_rate=None,
154+
codec=settings.codec,
155+
crf=settings.crf,
156+
overrides=settings.writegear_overrides(),
157+
)
117158

118-
assert opts["-input_framerate"] == "30.000000"
159+
assert opts["-input_framerate"] == DEFAULT_RECORDING_FPS

0 commit comments

Comments
 (0)