Skip to content

Commit 6bc4ed2

Browse files
committed
Extend test
1 parent ea3548a commit 6bc4ed2

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

tests/test_serialization_context.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
DataConverter,
1414
DefaultPayloadConverter,
1515
EncodingPayloadConverter,
16+
JSONPlainPayloadConverter,
1617
SerializationContext,
1718
WithSerializationContext,
1819
WorkflowSerializationContext,
@@ -22,8 +23,8 @@
2223

2324
@dataclass
2425
class PayloadConverterTraceData:
25-
to_payload: Optional[WorkflowSerializationContext] = None
26-
from_payload: Optional[WorkflowSerializationContext] = None
26+
to_payload: list[WorkflowSerializationContext] = field(default_factory=list)
27+
from_payload: list[WorkflowSerializationContext] = field(default_factory=list)
2728

2829

2930
@dataclass
@@ -33,7 +34,7 @@ class TraceData:
3334
)
3435

3536

36-
@workflow.defn
37+
@workflow.defn(sandboxed=False) # we want to use isinstance
3738
class SerializationContextTestWorkflow:
3839
@workflow.run
3940
async def run(self, input: TraceData) -> TraceData:
@@ -61,12 +62,17 @@ def with_context(
6162
return converter
6263

6364
def to_payload(self, value: Any) -> Optional[Payload]:
64-
value.workflow_context.to_payload = self.context
65+
assert isinstance(value, TraceData)
66+
assert isinstance(self.context, WorkflowSerializationContext)
67+
value.workflow_context.to_payload.append(self.context)
6568
return None
6669

6770
def from_payload(self, payload: Payload, type_hint: Optional[Type] = None) -> Any:
68-
raise RuntimeError("Not implemented")
69-
# return payload.data.decode()
71+
value = JSONPlainPayloadConverter().from_payload(payload, type_hint)
72+
assert isinstance(value, TraceData)
73+
assert isinstance(self.context, WorkflowSerializationContext)
74+
value.workflow_context.from_payload.append(self.context)
75+
return value
7076

7177

7278
class SerializationContextTestPayloadConverter(
@@ -108,7 +114,9 @@ async def test_workflow_payload_conversion_can_be_given_access_to_serialization_
108114
task_queue=task_queue,
109115
)
110116

111-
assert result.workflow_context.to_payload == WorkflowSerializationContext(
117+
workflow_context = WorkflowSerializationContext(
112118
namespace="default",
113119
workflow_id=workflow_id,
114120
)
121+
assert result.workflow_context.to_payload == [workflow_context] * 2
122+
# assert result.workflow_context.from_payload == [workflow_context] * 2

0 commit comments

Comments
 (0)