From 92dbdf1287e88588db6a89941a2ab17e54c25cd4 Mon Sep 17 00:00:00 2001 From: Adam Dangoor Date: Wed, 26 Aug 2026 14:43:28 +0100 Subject: [PATCH] Quit the driver when logging in fails in the test fixture Closes #1497 Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01YJDy3qA1LyNTh11zS98ukM --- tests/test_create_database.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/tests/test_create_database.py b/tests/test_create_database.py index 1437ac73..4fcaa073 100644 --- a/tests/test_create_database.py +++ b/tests/test_create_database.py @@ -17,24 +17,27 @@ @pytest.fixture(name="chrome_driver") def fixture_chrome_driver() -> Iterator[WebDriver]: """Yield a headless Chrome WebDriver, quitting on tear down.""" - driver = vws_web_tools.create_chrome_driver() - yield driver - driver.quit() + with vws_web_tools.create_chrome_driver() as driver: + yield driver @pytest.fixture(name="logged_in_chrome_driver", scope="module") def fixture_logged_in_chrome_driver( vws_credentials: VWSCredentials, ) -> Iterator[WebDriver]: - """Yield a headless Chrome WebDriver that is logged in.""" - driver = vws_web_tools.create_chrome_driver() - vws_web_tools.log_in( - driver=driver, - email_address=vws_credentials.email_address, - password=vws_credentials.password, - ) - yield driver - driver.quit() + """Yield a headless Chrome WebDriver that is logged in. + + Logging in happens inside the ``with`` block so that the browser and + the ChromeDriver service are stopped even if logging in fails, when + the tear down after the ``yield`` never runs. + """ + with vws_web_tools.create_chrome_driver() as driver: + vws_web_tools.log_in( + driver=driver, + email_address=vws_credentials.email_address, + password=vws_credentials.password, + ) + yield driver @pytest.fixture(name="license_name", scope="module")