Fix StoredConversationMetadata import issue causing AttributeError

- Replace problematic lazy import pattern with direct imports
- Fix 'NoneType' object has no attribute 'conversation_id' error
- Update imports in saas_app_conversation_info_injector.py and related files
- Simplify test file by removing patch workaround
- All imports now work correctly and linting passes

Co-authored-by: openhands <openhands@all-hands.dev>
This commit is contained in:
openhands
2025-12-10 06:44:49 +00:00
parent 997371aed7
commit c7c2029a0e
4 changed files with 11 additions and 15 deletions

View File

@@ -20,7 +20,9 @@ from server.utils.conversation_callback_utils import (
from sqlalchemy import orm
from storage.api_key_store import ApiKeyStore
from storage.database import session_maker
from storage.stored_conversation_metadata import StoredConversationMetadata
from openhands.app_server.app_conversation.sql_app_conversation_info_service import (
StoredConversationMetadata,
)
from storage.stored_conversation_metadata_saas import StoredConversationMetadataSaas
from openhands.controller.agent import Agent

View File

@@ -26,7 +26,9 @@ from storage.role import Role
from storage.slack_conversation import SlackConversation
from storage.slack_team import SlackTeam
from storage.slack_user import SlackUser
from storage.stored_conversation_metadata import StoredConversationMetadata
from openhands.app_server.app_conversation.sql_app_conversation_info_service import (
StoredConversationMetadata,
)
from storage.stored_conversation_metadata_saas import StoredConversationMetadataSaas
from storage.stored_custom_secrets import StoredCustomSecrets
from storage.stored_offline_token import StoredOfflineToken

View File

@@ -6,7 +6,6 @@ from uuid import UUID
from fastapi import Request
from sqlalchemy import func, select
from storage.stored_conversation_metadata import StoredConversationMetadata
from storage.stored_conversation_metadata_saas import StoredConversationMetadataSaas
from storage.user import User
@@ -21,6 +20,7 @@ from openhands.app_server.app_conversation.app_conversation_models import (
)
from openhands.app_server.app_conversation.sql_app_conversation_info_service import (
SQLAppConversationInfoService,
StoredConversationMetadata,
)
from openhands.app_server.services.injector import InjectorState

View File

@@ -13,20 +13,13 @@ import pytest
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
from sqlalchemy.pool import StaticPool
# Import the actual StoredConversationMetadata from OpenHands core
# Import the SAAS service
from enterprise.storage.saas_app_conversation_info_injector import (
SaasSQLAppConversationInfoService,
)
from openhands.app_server.app_conversation.sql_app_conversation_info_service import (
StoredConversationMetadata,
)
# Mock the lazy import to return the actual class
with patch(
'storage.stored_conversation_metadata.StoredConversationMetadata',
StoredConversationMetadata,
):
# Import the SAAS service
from enterprise.storage.saas_app_conversation_info_injector import (
SaasSQLAppConversationInfoService,
)
from openhands.app_server.app_conversation.app_conversation_models import (
AppConversationInfo,
)
@@ -205,7 +198,6 @@ class TestSaasSQLAppConversationInfoService:
saas_service_user1: SaasSQLAppConversationInfoService,
):
"""Test that _to_info_with_user_id properly sets user_id from SAAS metadata."""
from storage.stored_conversation_metadata import StoredConversationMetadata
from storage.stored_conversation_metadata_saas import (
StoredConversationMetadataSaas,
)