From 9b50f359a639ddb02fd97335afb24f49fddb9764 Mon Sep 17 00:00:00 2001 From: Phil Skentelbery Date: Sat, 22 Nov 2025 12:51:00 -0700 Subject: [PATCH] test(auth): fix test isolation for verification tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Clear pre-existing verified domains at the start of each test that expects an unverified domain to ensure proper test isolation. This prevents test failures caused by verified domains persisting from earlier tests in the test session. Fixes: - test_dns_failure_shows_instructions - test_email_discovery_failure_shows_instructions - test_full_flow_new_domain - test_unverified_domain_never_sees_consent_directly 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../api/test_authorization_verification.py | 56 ++++++++++++++++--- 1 file changed, 48 insertions(+), 8 deletions(-) diff --git a/tests/integration/api/test_authorization_verification.py b/tests/integration/api/test_authorization_verification.py index 5dd2342..c8e74d0 100644 --- a/tests/integration/api/test_authorization_verification.py +++ b/tests/integration/api/test_authorization_verification.py @@ -292,8 +292,18 @@ class TestDNSFailureHandling: self, configured_app, valid_auth_params ): """Test that DNS verification failure shows helpful instructions.""" - app, _ = configured_app - from gondulf.dependencies import get_verification_service, get_happ_parser + app, db_path = configured_app + from gondulf.dependencies import get_verification_service, get_happ_parser, get_database + from gondulf.database.connection import Database + from sqlalchemy import text + + # Clear any pre-existing verified domain to ensure test isolation + db = Database(f"sqlite:///{db_path}") + db.initialize() + with db.get_engine().begin() as conn: + conn.execute(text("DELETE FROM domains WHERE domain = :domain"), {"domain": "user.example.com"}) + + app.dependency_overrides[get_database] = lambda: db mock_service = create_mock_verification_service(start_success=False, start_error="dns_verification_failed") mock_parser = create_mock_happ_parser() @@ -321,8 +331,18 @@ class TestEmailFailureHandling: self, configured_app, valid_auth_params ): """Test that email discovery failure shows helpful instructions.""" - app, _ = configured_app - from gondulf.dependencies import get_verification_service, get_happ_parser + app, db_path = configured_app + from gondulf.dependencies import get_verification_service, get_happ_parser, get_database + from gondulf.database.connection import Database + from sqlalchemy import text + + # Clear any pre-existing verified domain to ensure test isolation + db = Database(f"sqlite:///{db_path}") + db.initialize() + with db.get_engine().begin() as conn: + conn.execute(text("DELETE FROM domains WHERE domain = :domain"), {"domain": "user.example.com"}) + + app.dependency_overrides[get_database] = lambda: db mock_service = create_mock_verification_service(start_success=False, start_error="email_discovery_failed") mock_parser = create_mock_happ_parser() @@ -348,8 +368,18 @@ class TestFullVerificationFlow: self, configured_app, valid_auth_params ): """Test complete flow: unverified domain -> verify code -> consent.""" - app, _ = configured_app - from gondulf.dependencies import get_verification_service, get_happ_parser + app, db_path = configured_app + from gondulf.dependencies import get_verification_service, get_happ_parser, get_database + from gondulf.database.connection import Database + from sqlalchemy import text + + # Clear any pre-existing verified domain to ensure test isolation + db = Database(f"sqlite:///{db_path}") + db.initialize() + with db.get_engine().begin() as conn: + conn.execute(text("DELETE FROM domains WHERE domain = :domain"), {"domain": "user.example.com"}) + + app.dependency_overrides[get_database] = lambda: db mock_service = create_mock_verification_service(start_success=True, verify_success=True) mock_parser = create_mock_happ_parser() @@ -444,8 +474,18 @@ class TestSecurityRequirements: self, configured_app, valid_auth_params ): """Critical: Unverified domains must NEVER see consent page directly.""" - app, _ = configured_app - from gondulf.dependencies import get_verification_service, get_happ_parser + app, db_path = configured_app + from gondulf.dependencies import get_verification_service, get_happ_parser, get_database + from gondulf.database.connection import Database + from sqlalchemy import text + + # Clear any pre-existing verified domain to ensure test isolation + db = Database(f"sqlite:///{db_path}") + db.initialize() + with db.get_engine().begin() as conn: + conn.execute(text("DELETE FROM domains WHERE domain = :domain"), {"domain": "user.example.com"}) + + app.dependency_overrides[get_database] = lambda: db mock_service = create_mock_verification_service(start_success=True) mock_parser = create_mock_happ_parser()