Skip to content

Commit 5969b31

Browse files
committed
override serialization instead of model_dump and increase test coverage to resolve PromptData serialization bug
1 parent 1dea16a commit 5969b31

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

neon_data_models/models/api/klat/socketio.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
from typing import Optional, Dict, List, Literal, Union
2828

2929
from neon_data_models.models.api.llm import LLMPersona
30-
from pydantic import Field, model_validator
30+
from pydantic import Field, model_validator, model_serializer
3131

3232
from neon_data_models.enum import CcaiPromptStates
3333
from neon_data_models.models.base import BaseModel
@@ -133,9 +133,14 @@ class _PromptData(BaseModel):
133133
default=[],
134134
description="List of subminds that participated in this prompt")
135135

136-
def model_dump(self, *args, **kwargs):
137-
kwargs.setdefault('by_alias', True)
138-
return BaseModel.model_dump(self, *args, **kwargs)
136+
@model_serializer
137+
def alias_serialize(self):
138+
return {"_id": self.id,
139+
"is_completed": self.is_completed,
140+
"proposed_responses": self.proposed_responses,
141+
"submind_opinions": self.submind_opinions,
142+
"votes": self.votes,
143+
"participating_subminds": self.participating_subminds}
139144

140145
data: Union[_PromptData, List[_PromptData]] = Field(description="Prompt data")
141146
receiver: str = Field(description="Nickname of user requesting prompt data")

tests/models/api/test_klat.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,9 @@ def test_prompt_data(self):
3535
self.assertIsInstance(test_object, PromptData._PromptData)
3636
self.assertEqual(test_object,
3737
PromptData._PromptData(**test_object.model_dump()))
38+
39+
valid_prompt_data = PromptData(data=test_object,
40+
receiver="mock_username",
41+
cid="mock_conversation")
42+
self.assertEqual(valid_prompt_data,
43+
PromptData(**valid_prompt_data.model_dump()))

0 commit comments

Comments
 (0)