From 5769a361100c4c1f371805747f0a441e21bf7995 Mon Sep 17 00:00:00 2001 From: Andrew Pikul Date: Wed, 29 Jan 2025 11:51:41 -0500 Subject: [PATCH 1/3] Tweak sleep/wait times during close --- CHANGELOG.txt | 3 +++ choreographer/browser_async.py | 4 +++- choreographer/browser_sync.py | 6 ++++-- choreographer/utils/_tmpfile.py | 2 +- tests/conftest.py | 2 +- 5 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 CHANGELOG.txt diff --git a/CHANGELOG.txt b/CHANGELOG.txt new file mode 100644 index 00000000..36a802fa --- /dev/null +++ b/CHANGELOG.txt @@ -0,0 +1,3 @@ +v1.0.0a11 +- Increase wait for checking regular close +- Decrease freeze for manual bad-close cleanup diff --git a/choreographer/browser_async.py b/choreographer/browser_async.py index b6ea5ab6..2be46d99 100644 --- a/choreographer/browser_async.py +++ b/choreographer/browser_async.py @@ -179,8 +179,10 @@ async def _close(self) -> None: return except ChannelClosedError: _logger.debug("Can send browser.close on close channel") + await asyncio.to_thread(self._channel.close) - if await self._is_closed(wait=2): + + if await self._is_closed(wait=3): return if await self._is_closed(): diff --git a/choreographer/browser_sync.py b/choreographer/browser_sync.py index cfa271ba..f583c18e 100644 --- a/choreographer/browser_sync.py +++ b/choreographer/browser_sync.py @@ -133,12 +133,14 @@ def _close(self) -> None: try: self.send_command("Browser.close") except (BrowserClosedError, BrowserFailedError): + _logger.debug("Browser is closed trying to send Browser.close") return except ChannelClosedError: - pass + _logger.debug("Can send browser.close on close channel") self._channel.close() - if self._is_closed(): + + if self._is_closed(wait=3): return # try kiling diff --git a/choreographer/utils/_tmpfile.py b/choreographer/utils/_tmpfile.py index 23a46f11..bb9a32f5 100644 --- a/choreographer/utils/_tmpfile.py +++ b/choreographer/utils/_tmpfile.py @@ -193,7 +193,7 @@ def extra_clean() -> None: _logger.info(f"Extra manual clean executing {i}.") self._delete_manually(quiet=True) i += 1 - time.sleep(10) + time.sleep(2) if self.path.exists(): self._delete_manually(quiet=False) diff --git a/tests/conftest.py b/tests/conftest.py index d57b34fc..ee8388e3 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -89,7 +89,7 @@ async def wrapped_test_fn(*args, **kwargs): def pytest_configure(): # change this by command line TODO - pytest.default_timeout = 60 + pytest.default_timeout = 20 # pytest shuts down its capture before logging/threads finish From 925da3c7b70d8e633e2a86463e0d168d0c81dc24 Mon Sep 17 00:00:00 2001 From: Andrew Pikul Date: Wed, 29 Jan 2025 16:26:00 -0500 Subject: [PATCH 2/3] Cleanup diagnose function --- choreographer/cli/_cli_utils_no_qa.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/choreographer/cli/_cli_utils_no_qa.py b/choreographer/cli/_cli_utils_no_qa.py index 78d9506b..f149902e 100644 --- a/choreographer/cli/_cli_utils_no_qa.py +++ b/choreographer/cli/_cli_utils_no_qa.py @@ -1,6 +1,5 @@ import argparse - -# import asyncio +import asyncio import platform import subprocess import sys @@ -28,8 +27,7 @@ def diagnose() -> None: logistro.getLogger().setLevel("DEBUG") - # from choreographer import BrowserSync, Browser, browser_which - from choreographer import BrowserSync + from choreographer import Browser, BrowserSync from choreographer.browsers._chrome_constants import chrome_names from choreographer.utils._which import browser_which @@ -85,15 +83,15 @@ def diagnose() -> None: fail.append(("Sync test headless", e)) finally: print("Done with sync test headless".center(50, "*")) - # ruff: noqa: ERA001 - # async def test_headless(): - # browser = await Browser(debug=True, debug_browser=True, headless=headless) - # await asyncio.sleep(3) - # await browser.close() + + async def test_headless(): + browser = await Browser(debug=True, debug_browser=True, headless=headless) + await asyncio.sleep(3) + await browser.close() try: print("Async Test Headless".center(50, "*")) - # asyncio.run(test_headless()) + asyncio.run(test_headless()) except BaseException as e: fail.append(("Async test headless", e)) finally: From 974283e6e0c38a7cb4b38d1bc15eea14d0cc5c8f Mon Sep 17 00:00:00 2001 From: Andrew Pikul Date: Wed, 29 Jan 2025 16:26:18 -0500 Subject: [PATCH 3/3] Type re-added function --- choreographer/cli/_cli_utils_no_qa.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/choreographer/cli/_cli_utils_no_qa.py b/choreographer/cli/_cli_utils_no_qa.py index f149902e..b1b13e90 100644 --- a/choreographer/cli/_cli_utils_no_qa.py +++ b/choreographer/cli/_cli_utils_no_qa.py @@ -84,7 +84,7 @@ def diagnose() -> None: finally: print("Done with sync test headless".center(50, "*")) - async def test_headless(): + async def test_headless() -> None: browser = await Browser(debug=True, debug_browser=True, headless=headless) await asyncio.sleep(3) await browser.close()