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()