Fix unit tests

This commit is contained in:
Chuck Butkus 2025-10-28 23:10:43 -04:00
parent e349d37b8c
commit 1289688b64
3 changed files with 37 additions and 11 deletions

View File

@ -52,7 +52,7 @@ class SaasConversationStore(ConversationStore):
StoredConversationMetadata.conversation_id
== StoredConversationMetadataSaas.conversation_id,
)
.filter(StoredConversationMetadataSaas.user_id == self.user_id)
.filter(StoredConversationMetadataSaas.user_id == UUID(self.user_id))
.filter(StoredConversationMetadataSaas.org_id == self.org_id)
.filter(StoredConversationMetadata.conversation_id == conversation_id)
)
@ -118,13 +118,13 @@ class SaasConversationStore(ConversationStore):
if not saas_metadata:
saas_metadata = StoredConversationMetadataSaas(
conversation_id=stored_metadata.conversation_id,
user_id=self.user_id,
user_id=UUID(self.user_id),
org_id=self.org_id,
)
session.add(saas_metadata)
else:
# Update existing record
saas_metadata.user_id = self.user_id
saas_metadata.user_id = UUID(self.user_id)
saas_metadata.org_id = self.org_id
session.commit()
@ -147,12 +147,14 @@ class SaasConversationStore(ConversationStore):
def _delete_metadata():
with self.session_maker() as session:
# Delete the main conversation metadata
self._select_by_id(session, conversation_id).delete()
session.query(StoredConversationMetadata).filter(
StoredConversationMetadata.conversation_id == conversation_id,
).delete()
# Delete the SaaS metadata record
session.query(StoredConversationMetadataSaas).filter(
StoredConversationMetadataSaas.conversation_id == conversation_id,
StoredConversationMetadataSaas.user_id == self.user_id,
StoredConversationMetadataSaas.user_id == UUID(self.user_id),
StoredConversationMetadataSaas.org_id == self.org_id,
).delete()
@ -184,7 +186,9 @@ class SaasConversationStore(ConversationStore):
StoredConversationMetadata.conversation_id
== StoredConversationMetadataSaas.conversation_id,
)
.filter(StoredConversationMetadataSaas.user_id == self.user_id)
.filter(
StoredConversationMetadataSaas.user_id == UUID(self.user_id)
)
.filter(StoredConversationMetadataSaas.org_id == self.org_id)
.order_by(StoredConversationMetadata.created_at.desc())
.offset(offset)

View File

@ -1,10 +1,12 @@
import uuid
from datetime import datetime
from uuid import UUID
import pytest
from server.constants import ORG_SETTINGS_VERSION
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from server.constants import ORG_SETTINGS_VERSION
from storage.base import Base
# Anything not loaded here may not have a table created for it.
@ -16,6 +18,9 @@ from storage.org import Org
from storage.org_member import OrgMember
from storage.role import Role
from storage.stored_conversation_metadata import StoredConversationMetadata
from storage.stored_conversation_metadata_saas import (
StoredConversationMetadataSaas,
)
from storage.stored_offline_token import StoredOfflineToken
from storage.stripe_customer import StripeCustomer
from storage.user import User
@ -67,7 +72,6 @@ def add_minimal_fixtures(session_maker):
session.add(
StoredConversationMetadata(
conversation_id='mock-conversation-id',
user_id='5594c7b6-f959-4b81-92e9-b09c206f5081',
created_at=datetime.fromisoformat('2025-03-07'),
last_updated_at=datetime.fromisoformat('2025-03-08'),
accumulated_cost=5.25,
@ -76,6 +80,13 @@ def add_minimal_fixtures(session_maker):
total_tokens=750,
)
)
session.add(
StoredConversationMetadataSaas(
conversation_id='mock-conversation-id',
user_id=UUID('5594c7b6-f959-4b81-92e9-b09c206f5081'),
org_id=UUID('5594c7b6-f959-4b81-92e9-b09c206f5081'),
)
)
session.add(
StoredOfflineToken(
user_id='mock-user-id',

View File

@ -3,16 +3,20 @@ Tests for ConversationCallbackProcessor and ConversationCallback models.
"""
import json
from uuid import UUID
import pytest
from openhands.events.observation.agent import AgentStateChangedObservation
from storage.conversation_callback import (
CallbackStatus,
ConversationCallback,
ConversationCallbackProcessor,
)
from storage.stored_conversation_metadata import StoredConversationMetadata
from openhands.events.observation.agent import AgentStateChangedObservation
from storage.stored_conversation_metadata_saas import (
StoredConversationMetadataSaas,
)
class MockConversationCallbackProcessor(ConversationCallbackProcessor):
@ -80,15 +84,22 @@ class TestConversationCallback:
"""Create a test conversation metadata record."""
with session_maker() as session:
metadata = StoredConversationMetadata(
conversation_id='test_conversation_123', user_id='test_user_456'
conversation_id='test_conversation_123'
)
metadata_saas = StoredConversationMetadataSaas(
conversation_id='test_conversation_123',
user_id=UUID('5594c7b6-f959-4b81-92e9-b09c206f5081'),
org_id=UUID('5594c7b6-f959-4b81-92e9-b09c206f5081'),
)
session.add(metadata)
session.add(metadata_saas)
session.commit()
session.refresh(metadata)
yield metadata
# Cleanup
session.delete(metadata)
session.delete(metadata_saas)
session.commit()
def test_callback_creation(self, conversation_metadata, session_maker):