temporalio / temporalio/sdk-python
[Bug] Test server in time-skipping mode does return userMetadata.summary
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.2k
- Forks
- 241
- Avg merge
- 3d 21h
- Merged PRs (30d)
- 55
Description
What are you really trying to do?
I want to leverage userMetadata.summary and show it in UI, and test the functionality.
Describe the bug
My tests fail when running tests with test server in time-skipping mode.
I am passing summary attribute when executing workflow and activities. Then I query workflow history I can see userMetadata.summary populated on the HistoryEvent when running in dev mode, but it is missing in time-skipping mode.
Minimal Reproduction
@workflow.defn
class WorkflowSample:
@workflow.run
async def run(self, name: str) -> list[str]:
result = await workflow.execute_activity(ActivitySample.greeting, name, summary=f"Calculating greeting for {name}")
return [result]
async def get_payload_value(self, *args: Payload | None) -> str | None:
decoded_summary = await self.data_converter.decode(non_empty_payloads(*args))
if len(decoded_summary) == 0:
return None
return decoded_summary[0]
async def get_summary(self, history_event: HistoryEvent) -> str | None:
logger.debug("Getting summary for event %s", MessageToJson(history_event))
return await self.get_payload_value(
history_event.user_metadata.summary)
async def run(self):
async for event in workflow_handle.fetch_history_events(wait_new_event=wait_new_event):
summary = await self.get_summary(event)
print(summary)
Environment/Versions
- OS and processor: M1 Mac
- Temporal Version: 1.10.0
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the example with the test server in time-skipping mode, comparing its workflow history with dev mode. Trace summary handling from workflow.execute_activity through fetch_history_events and user_metadata.summary. Done means the summary is present in the returned HistoryEvent in both modes, with the relevant tests passing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, testing-qa
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100