From f1e3977f9387f10e923200a37ababbd95bcac5a6 Mon Sep 17 00:00:00 2001 From: Adam Dangoor Date: Sat, 21 Feb 2026 00:21:15 +0000 Subject: [PATCH 1/2] Fix test isolation in Flask app database tests Reset TARGET_MANAGER state between tests by cleaning up cloud and VuMark databases in the autouse fixture. This fixes the leaky test issue that required workaround keys ("v1", "v2", "v3" instead of "1", "2", "3") in test_duplicate_vumark_keys. Co-Authored-By: Claude Haiku 4.5 --- tests/mock_vws/test_flask_app_usage.py | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/tests/mock_vws/test_flask_app_usage.py b/tests/mock_vws/test_flask_app_usage.py index 5ce6ad1aa..729c94db1 100644 --- a/tests/mock_vws/test_flask_app_usage.py +++ b/tests/mock_vws/test_flask_app_usage.py @@ -15,7 +15,10 @@ from requests_mock_flask import add_flask_app_to_mock from vws import VWS, CloudRecoService -from mock_vws._flask_server.target_manager import TARGET_MANAGER_FLASK_APP +from mock_vws._flask_server.target_manager import ( + TARGET_MANAGER, + TARGET_MANAGER_FLASK_APP, +) from mock_vws._flask_server.vwq import CLOUDRECO_FLASK_APP from mock_vws._flask_server.vws import VWS_FLASK_APP from mock_vws.database import CloudDatabase, VuMarkDatabase @@ -57,6 +60,11 @@ def _(monkeypatch: pytest.MonkeyPatch) -> Iterator[None]: yield + for database in TARGET_MANAGER.cloud_databases: + TARGET_MANAGER.remove_cloud_database(cloud_database=database) + for database in TARGET_MANAGER.vumark_databases: + TARGET_MANAGER.remove_vumark_database(vumark_database=database) + class TestProcessingTime: """Tests for the time taken to process targets in the mock.""" @@ -176,26 +184,26 @@ def test_duplicate_vumark_keys() -> None: keys, including VuMark databases. """ database = VuMarkDatabase( - server_access_key="v1", - server_secret_key="v2", - database_name="v3", + server_access_key="1", + server_secret_key="2", + database_name="3", ) - bad_server_access_key_db = VuMarkDatabase(server_access_key="v1") - bad_server_secret_key_db = VuMarkDatabase(server_secret_key="v2") - bad_database_name_db = VuMarkDatabase(database_name="v3") + bad_server_access_key_db = VuMarkDatabase(server_access_key="1") + bad_server_secret_key_db = VuMarkDatabase(server_secret_key="2") + bad_database_name_db = VuMarkDatabase(database_name="3") server_access_key_conflict_error = ( "All server access keys must be unique. " - 'There is already a database with the server access key "v1".' + 'There is already a database with the server access key "1".' ) server_secret_key_conflict_error = ( "All server secret keys must be unique. " - 'There is already a database with the server secret key "v2".' + 'There is already a database with the server secret key "2".' ) database_name_conflict_error = ( "All names must be unique. " - 'There is already a database with the name "v3".' + 'There is already a database with the name "3".' ) databases_url = _EXAMPLE_URL_FOR_TARGET_MANAGER + "/vumark_databases" From 3bdd91ed60556f3625913acdf449f04a86600fa9 Mon Sep 17 00:00:00 2001 From: Adam Dangoor Date: Sat, 21 Feb 2026 00:22:42 +0000 Subject: [PATCH 2/2] Fix type annotation in test cleanup --- tests/mock_vws/test_flask_app_usage.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/mock_vws/test_flask_app_usage.py b/tests/mock_vws/test_flask_app_usage.py index 729c94db1..4cef8424a 100644 --- a/tests/mock_vws/test_flask_app_usage.py +++ b/tests/mock_vws/test_flask_app_usage.py @@ -60,10 +60,10 @@ def _(monkeypatch: pytest.MonkeyPatch) -> Iterator[None]: yield - for database in TARGET_MANAGER.cloud_databases: - TARGET_MANAGER.remove_cloud_database(cloud_database=database) - for database in TARGET_MANAGER.vumark_databases: - TARGET_MANAGER.remove_vumark_database(vumark_database=database) + for cloud_database in TARGET_MANAGER.cloud_databases: + TARGET_MANAGER.remove_cloud_database(cloud_database=cloud_database) + for vumark_database in TARGET_MANAGER.vumark_databases: + TARGET_MANAGER.remove_vumark_database(vumark_database=vumark_database) class TestProcessingTime: