From 544134f0534d2e4e4fd7ab823d8a0da543fa80ef Mon Sep 17 00:00:00 2001 From: historia Date: Sat, 12 Sep 2026 21:18:34 -0400 Subject: fix: output wavs from gui go into correct directory --- lib/project/tests/test_gui_browser_races.py | 31 +++++++++++++++++++---------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'lib/project/tests/test_gui_browser_races.py') diff --git a/lib/project/tests/test_gui_browser_races.py b/lib/project/tests/test_gui_browser_races.py index 5f2638b..32b7eef 100644 --- a/lib/project/tests/test_gui_browser_races.py +++ b/lib/project/tests/test_gui_browser_races.py @@ -13,7 +13,7 @@ def test_gui_browser_cancellation_is_not_pretend(studio): from playwright.sync_api import sync_playwright, expect with sync_playwright() as playwright: - browser = playwright.chromium.launch(headless=True, args=["--no-sandbox"]) + browser = playwright.chromium.launch(headless=True, channel=os.environ.get("PRODUCER_BROWSER_CHANNEL") or None, args=["--no-sandbox"]) page = browser.new_page() page.goto(studio["url"]) page.locator("#pick-files").set_input_files(studio["source"]) @@ -22,6 +22,13 @@ def test_gui_browser_cancellation_is_not_pretend(studio): page.locator("#render-preview").click() assert studio["control"]["started"].wait(10) expect(page.locator("#jobs .job").filter(has_text="running")).to_have_count(1, timeout=10000) + # The launch override disables denoising, hiding its strength control; + # enable the denoiser module (checkbox), then pick FFT and edit + # another control while the preview is running. + page.locator("#enable-denoiser").check() + expect(page.locator("#setting-denoiser")).to_be_enabled() + page.locator("#setting-denoiser").select_option("fft") + expect(page.locator("#setting-denoise_strength")).to_be_visible() page.locator("#setting-denoise_strength").fill("0.4") page.locator("#render-preview").click() queued = page.locator("#jobs .job").filter(has_text="queued") @@ -42,7 +49,7 @@ def test_gui_browser_late_audio_is_aborted_and_urls_are_released(studio): from playwright.sync_api import sync_playwright, expect with sync_playwright() as playwright: - browser = playwright.chromium.launch(headless=True, args=["--no-sandbox"]) + browser = playwright.chromium.launch(headless=True, channel=os.environ.get("PRODUCER_BROWSER_CHANNEL") or None, args=["--no-sandbox"]) page = browser.new_page() page.add_init_script("""window.objectURLs = {created: [], revoked: []}; const create = URL.createObjectURL.bind(URL), revoke = URL.revokeObjectURL.bind(URL); @@ -92,7 +99,7 @@ def test_gui_browser_nonzero_monitoring_gain_is_playback_only(studio): from playwright.sync_api import sync_playwright, expect with sync_playwright() as playwright: - browser = playwright.chromium.launch(headless=True, args=["--no-sandbox"]) + browser = playwright.chromium.launch(headless=True, channel=os.environ.get("PRODUCER_BROWSER_CHANNEL") or None, args=["--no-sandbox"]) page = browser.new_page() page.add_init_script("""window.monitorGains = []; const createGain = AudioContext.prototype.createGain; @@ -117,13 +124,11 @@ def test_gui_browser_nonzero_monitoring_gain_is_playback_only(studio): assert min(gains) < .9, "A nonzero measured loudness difference should attenuate one playback side" assert page.locator("#preview-settings").text_content() == requested assert page.locator("#meters").inner_text() == meters + # The old pacing export dialog is gone; export submits directly and + # nothing exists in the output directory to overwrite. + page.locator("#output-dir").fill(str(studio["root"] / "delivery")) page.locator("#prepare-export").click() - expect(page.locator("#export-dialog")).to_be_visible() - frozen_export = page.locator("#export-settings").text_content() - assert '"level_target_db": -12' in frozen_export - assert "original_gain_db" not in frozen_export and "processed_gain_db" not in frozen_export - assert "monitoring" not in frozen_export - page.locator("#cancel-export").click() + expect(page.locator("#export-results")).to_contain_text("Full recording exported", timeout=30000) page.locator("#match").uncheck() assert page.evaluate("monitorGains.map(node => node.gain.value)") == [1, 1] browser.close() @@ -134,7 +139,7 @@ def test_delayed_job_list_preserves_new_submission_intent(studio, kind): from playwright.sync_api import sync_playwright, expect with sync_playwright() as playwright: - browser = playwright.chromium.launch(headless=True, args=["--no-sandbox"]) + browser = playwright.chromium.launch(headless=True, channel=os.environ.get("PRODUCER_BROWSER_CHANNEL") or None, args=["--no-sandbox"]) page = browser.new_page() page.goto(studio["url"]) if kind == "preview": @@ -176,7 +181,7 @@ def test_delayed_audio_resume_does_not_start_superseded_playback(studio, interru from playwright.sync_api import sync_playwright, expect with sync_playwright() as playwright: - browser = playwright.chromium.launch(headless=True, args=["--no-sandbox"]) + browser = playwright.chromium.launch(headless=True, channel=os.environ.get("PRODUCER_BROWSER_CHANNEL") or None, args=["--no-sandbox"]) page = browser.new_page() page.add_init_script("""window.releaseAudioResume = null; const resume = AudioContext.prototype.resume; @@ -196,6 +201,10 @@ def test_delayed_audio_resume_does_not_start_superseded_playback(studio, interru page.locator("#listen-processed").click() expect(page.locator("#listen-processed")).to_have_attribute("aria-pressed", "true") elif interruption == "edit": + # The launch override hides the denoiser module; enable it and + # pick FFT so the strength control is editable. + page.locator("#enable-denoiser").check() + page.locator("#setting-denoiser").select_option("fft") page.locator("#setting-denoise_strength").fill("0.4") else: page.route("**/api/jobs", lambda route: route.fulfill( -- cgit v1.2.3