fix: normalize ambience loudness for v0.2.5
This commit is contained in:
@@ -71,7 +71,7 @@ class AmbienceConversion(unittest.TestCase):
|
||||
self.assertEqual(actual["conversion"]["seekMethod"], "full decode then sample trim")
|
||||
expected["conversion"]["seekMethod"] = actual["conversion"]["seekMethod"]
|
||||
self.assertEqual(actual, expected)
|
||||
self.assertEqual(len(calls), 2)
|
||||
self.assertEqual(len(calls), 5)
|
||||
self.assertLess(calls[0].index("-ss"), calls[0].index("-i"))
|
||||
self.assertNotIn("-ss", calls[1])
|
||||
self.assertIn("aresample=24000,atrim=start_sample=24000:end_sample=312000,asetpts=N/SR/TB", calls[1])
|
||||
@@ -286,6 +286,31 @@ class AtomicPublication(unittest.TestCase):
|
||||
with self.assertRaises(ValueError): self.run_generate()
|
||||
self.assert_prior()
|
||||
|
||||
def test_real_loudness_measurement_failure_preserves_prior_directory(self):
|
||||
"""최종 실측 FFmpeg만 실패시켜 원자 교환 전 실패 전파를 확인한다."""
|
||||
import subprocess
|
||||
from unittest.mock import patch
|
||||
run = subprocess.run
|
||||
def fail_measurement(command, **kwargs):
|
||||
if any("ebur128=" in str(arg) for arg in command):
|
||||
raise subprocess.CalledProcessError(1, command, stderr=b"injected measurement failure")
|
||||
return run(command, **kwargs)
|
||||
with patch.object(audio.subprocess, "run", side_effect=fail_measurement):
|
||||
with self.assertRaises(subprocess.CalledProcessError): self.run_generate()
|
||||
self.assert_prior()
|
||||
|
||||
def test_actual_target_or_true_peak_violation_preserves_prior_directory(self):
|
||||
"""manifest가 정상이라고 주장해도 별도 실측 위반은 공개하지 않는다."""
|
||||
from unittest.mock import patch
|
||||
for metric, value in (("integratedLUFS", -34.0), ("truePeakDBTP", -5.0), ("integratedLUFS", float("nan"))):
|
||||
with self.subTest(metric=metric):
|
||||
stats = {"integratedLUFS": -32.5, "truePeakDBTP": -7.0,
|
||||
"loudnessRangeLU": 1.0, "thresholdLUFS": -42.5}
|
||||
stats[metric] = value
|
||||
with patch.object(audio, "measure_loudness", return_value=stats, create=True):
|
||||
with self.assertRaises(ValueError): self.run_generate()
|
||||
self.assert_prior()
|
||||
|
||||
def test_exchange_failure_preserves_prior_directory(self):
|
||||
from unittest.mock import patch
|
||||
import ctypes
|
||||
|
||||
Reference in New Issue
Block a user