@@ -1696,12 +1696,6 @@ def test_cdp_url_is_not_published_before_extensions_metadata():
16961696 saw_cdp = False
16971697
16981698 while time .time () < deadline :
1699- if chrome_launch_process .poll () is not None :
1700- stdout , stderr = chrome_launch_process .communicate ()
1701- pytest .fail (
1702- f"Chrome launch exited early:\n Stdout: { stdout } \n Stderr: { stderr } " ,
1703- )
1704-
17051699 saw_extensions = extensions_file .exists ()
17061700 saw_cdp = cdp_file .exists ()
17071701
@@ -1713,6 +1707,13 @@ def test_cdp_url_is_not_published_before_extensions_metadata():
17131707 if saw_cdp and saw_extensions :
17141708 break
17151709
1710+ if chrome_launch_process .poll () is not None :
1711+ stdout , stderr = chrome_launch_process .communicate ()
1712+ pytest .fail (
1713+ f"Chrome launch exited early:\n Stdout: { stdout } \n Stderr: { stderr } " ,
1714+ )
1715+ time .sleep (1 )
1716+
17161717 time .sleep (0.1 )
17171718
17181719 assert saw_extensions , "chrome launch should create extensions.json"
@@ -1749,15 +1750,15 @@ def test_crawl_wait_accepts_http_cdp_url_for_external_browser(chrome_test_url):
17491750
17501751 try :
17511752 for _ in range (30 ):
1753+ if (provider_chrome_dir / "cdp_url.txt" ).exists () and (
1754+ provider_chrome_dir / "chrome.pid"
1755+ ).exists ():
1756+ break
17521757 if provider_process .poll () is not None :
17531758 stdout , stderr = provider_process .communicate ()
17541759 pytest .fail (
17551760 f"provider launch exited early:\n Stdout: { stdout } \n Stderr: { stderr } " ,
17561761 )
1757- if (provider_chrome_dir / "cdp_url.txt" ).exists () and (
1758- provider_chrome_dir / "chrome.pid"
1759- ).exists ():
1760- break
17611762 time .sleep (1 )
17621763
17631764 provider_cdp_url = (provider_chrome_dir / "cdp_url.txt" ).read_text ().strip ()
@@ -1812,8 +1813,8 @@ def test_crawl_wait_accepts_http_cdp_url_for_external_browser(chrome_test_url):
18121813 f"crawl wait should succeed for adopted HTTP endpoint:\n "
18131814 f"Stdout: { crawl_wait .stdout } \n Stderr: { crawl_wait .stderr } "
18141815 )
1815- assert "pid=external" in crawl_wait .stderr
1816- assert provider_http_url in crawl_wait .stderr
1816+ assert "pid=external" in crawl_wait .stdout
1817+ assert provider_http_url in crawl_wait .stdout
18171818 finally :
18181819 _cleanup_launch_process (provider_process , provider_chrome_dir )
18191820
@@ -2007,13 +2008,13 @@ def test_shared_dir_crawl_snapshot_file_order_and_gating(chrome_test_url):
20072008 )
20082009
20092010 for _ in range (30 ):
2011+ if all (path .exists () for path in shared_files .values ()):
2012+ break
20102013 if chrome_launch_process .poll () is not None :
20112014 stdout , stderr = chrome_launch_process .communicate ()
20122015 pytest .fail (
20132016 f"Chrome launch exited early:\n Stdout: { stdout } \n Stderr: { stderr } " ,
20142017 )
2015- if all (path .exists () for path in shared_files .values ()):
2016- break
20172018 time .sleep (1 )
20182019
20192020 assert all (path .exists () for path in shared_files .values ()), (
@@ -2028,7 +2029,9 @@ def test_shared_dir_crawl_snapshot_file_order_and_gating(chrome_test_url):
20282029 extensions_before = (
20292030 extensions_file .read_text () if extensions_file .exists () else None
20302031 )
2031- assert cdp_url_before .startswith ("ws://127.0.0.1:" ), cdp_url_before
2032+ assert cdp_url_before .startswith (("ws://127.0.0.1:" , "ws://localhost:" )), (
2033+ cdp_url_before
2034+ )
20322035 port_before = str (_port_from_cdp_url (cdp_url_before ))
20332036 os .kill (int (chrome_pid_before ), 0 )
20342037 assert _fetch_devtools_targets (cdp_url_before ), (
@@ -2051,8 +2054,8 @@ def test_shared_dir_crawl_snapshot_file_order_and_gating(chrome_test_url):
20512054 f"crawl wait should succeed before snapshot setup:\n "
20522055 f"Stdout: { crawl_wait .stdout } \n Stderr: { crawl_wait .stderr } "
20532056 )
2054- assert f"pid={ chrome_pid_before } " in crawl_wait .stderr
2055- assert f"127.0.0.1 :{ port_before } " in crawl_wait .stderr
2057+ assert f"pid={ chrome_pid_before } " in crawl_wait .stdout
2058+ assert f":{ port_before } " in crawl_wait .stdout
20562059 assert not any (path .exists () for path in snapshot_files .values ()), (
20572060 "crawl wait should not create snapshot-scoped files"
20582061 )
@@ -2255,13 +2258,13 @@ def test_shared_dir_extensions_metadata_created_and_preserved_when_enabled(
22552258 env = env ,
22562259 )
22572260 for _ in range (30 ):
2261+ if extensions_file .exists () and (chrome_dir / "cdp_url.txt" ).exists ():
2262+ break
22582263 if chrome_launch_process .poll () is not None :
22592264 stdout , stderr = chrome_launch_process .communicate ()
22602265 pytest .fail (
22612266 f"Chrome launch exited early:\n Stdout: { stdout } \n Stderr: { stderr } " ,
22622267 )
2263- if extensions_file .exists () and (chrome_dir / "cdp_url.txt" ).exists ():
2264- break
22652268 time .sleep (1 )
22662269
22672270 assert extensions_file .exists (), (
@@ -2364,7 +2367,7 @@ def test_chrome_wait_rejects_stale_cdp_markers(chrome_test_url):
23642367 assert result .returncode == 1 , (
23652368 f"chrome_wait should fail for stale CDP markers: { result .stderr } \n Stdout: { result .stdout } "
23662369 )
2367- payload = json .loads (result .stdout .strip ())
2370+ payload = json .loads (result .stdout .strip (). splitlines ()[ - 1 ] )
23682371 assert payload ["status" ] == "failed"
23692372 assert (
23702373 payload ["output_str" ]
@@ -2427,8 +2430,7 @@ def test_crawl_wait_retries_until_published_cdp_endpoint_becomes_connectable(
24272430 "crawl wait should retry until the published endpoint becomes connectable:\n "
24282431 f"Stdout: { stdout } \n Stderr: { stderr } "
24292432 )
2430- assert stdout .strip () == "" , stdout
2431- assert "Chrome session ready" in stderr , stderr
2433+ assert "Chromium ready pid=external" in stdout , stdout
24322434 finally :
24332435 if wait_process is not None and wait_process .poll () is None :
24342436 wait_process .kill ()
@@ -3101,15 +3103,15 @@ def test_chrome_cleanup_on_crawl_end():
31013103
31023104 # Wait for Chrome launch state files and fail fast on early hook exit.
31033105 for _ in range (15 ):
3106+ if (chrome_dir / "cdp_url.txt" ).exists () and (
3107+ chrome_dir / "chrome.pid"
3108+ ).exists ():
3109+ break
31043110 if chrome_launch_process .poll () is not None :
31053111 stdout , stderr = chrome_launch_process .communicate ()
31063112 pytest .fail (
31073113 f"Chrome launch process exited early:\n Stdout: { stdout } \n Stderr: { stderr } " ,
31083114 )
3109- if (chrome_dir / "cdp_url.txt" ).exists () and (
3110- chrome_dir / "chrome.pid"
3111- ).exists ():
3112- break
31133115 time .sleep (1 )
31143116
31153117 # Verify Chrome is running
0 commit comments