Skip to content

Commit 597bc26

Browse files
committed
fix: fmt and tests
1 parent 9bee258 commit 597bc26

File tree

8 files changed

+87
-46
lines changed

8 files changed

+87
-46
lines changed

tests/asyncio/test_context.py

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ async def test_workflow_headers(qstash_client: AsyncQStash) -> None:
3131
initial_payload="my-payload",
3232
env=None,
3333
retries=None,
34-
failure_url=None
34+
failure_url=WORKFLOW_ENDPOINT,
3535
)
3636

3737
async def execute() -> None:
@@ -61,28 +61,41 @@ async def execute() -> None:
6161
"queue": None,
6262
"headers": {
6363
"Content-Type": "application/json",
64-
"Upstash-Callback": WORKFLOW_ENDPOINT,
64+
"Upstash-Method": "PATCH",
65+
"Upstash-Workflow-Init": "false",
66+
"Upstash-Workflow-RunId": "wfr-id",
67+
"Upstash-Workflow-Url": "https://www.my-website.com/api",
68+
"Upstash-Feature-Set": "WF_NoDelete,InitialBody",
69+
"Upstash-Failure-Callback-Forward-Upstash-Workflow-Is-Failure": "true",
70+
"Upstash-Failure-Callback-Forward-Upstash-Workflow-Failure-Callback": "true",
71+
"Upstash-Failure-Callback-Workflow-Runid": "wfr-id",
72+
"Upstash-Failure-Callback-Workflow-Init": "false",
73+
"Upstash-Failure-Callback-Workflow-Url": "https://www.my-website.com/api",
74+
"Upstash-Failure-Callback-Workflow-Calltype": "failureCall",
75+
"Upstash-Callback-Failure-Callback-Forward-Upstash-Workflow-Is-Failure": "true",
76+
"Upstash-Callback-Failure-Callback-Forward-Upstash-Workflow-Failure-Callback": "true",
77+
"Upstash-Callback-Failure-Callback-Workflow-Runid": "wfr-id",
78+
"Upstash-Callback-Failure-Callback-Workflow-Init": "false",
79+
"Upstash-Callback-Failure-Callback-Workflow-Url": "https://www.my-website.com/api",
80+
"Upstash-Callback-Failure-Callback-Workflow-Calltype": "failureCall",
81+
"Upstash-Failure-Callback-Retries": "3",
82+
"Upstash-Callback-Failure-Callback-Retries": "3",
83+
"Upstash-Retries": "10",
84+
"Upstash-Callback-Retries": "3",
85+
"Upstash-Forward-my-header": "my-value",
86+
"Upstash-Callback": "https://www.my-website.com/api",
87+
"Upstash-Callback-Workflow-RunId": "wfr-id",
88+
"Upstash-Callback-Workflow-CallType": "fromCallback",
89+
"Upstash-Callback-Workflow-Init": "false",
90+
"Upstash-Callback-Workflow-Url": "https://www.my-website.com/api",
6591
"Upstash-Callback-Feature-Set": "LazyFetch,InitialBody",
6692
"Upstash-Callback-Forward-Upstash-Workflow-Callback": "true",
67-
"Upstash-Callback-Forward-Upstash-Workflow-Concurrent": "1",
68-
"Upstash-Callback-Forward-Upstash-Workflow-ContentType": "application/json",
6993
"Upstash-Callback-Forward-Upstash-Workflow-StepId": "1",
7094
"Upstash-Callback-Forward-Upstash-Workflow-StepName": "my-step",
7195
"Upstash-Callback-Forward-Upstash-Workflow-StepType": "Call",
72-
"Upstash-Callback-Retries": "3",
73-
"Upstash-Callback-Workflow-CallType": "fromCallback",
74-
"Upstash-Callback-Workflow-Init": "false",
75-
"Upstash-Callback-Workflow-RunId": "wfr-id",
76-
"Upstash-Callback-Workflow-Url": WORKFLOW_ENDPOINT,
77-
"Upstash-Failure-Callback-Retries": "3",
78-
"Upstash-Feature-Set": "WF_NoDelete,InitialBody",
79-
"Upstash-Forward-my-header": "my-value",
80-
"Upstash-Method": "PATCH",
81-
"Upstash-Retries": str(retries),
96+
"Upstash-Callback-Forward-Upstash-Workflow-Concurrent": "1",
97+
"Upstash-Callback-Forward-Upstash-Workflow-ContentType": "application/json",
8298
"Upstash-Workflow-CallType": "toCallback",
83-
"Upstash-Workflow-Init": "false",
84-
"Upstash-Workflow-RunId": "wfr-id",
85-
"Upstash-Workflow-Url": WORKFLOW_ENDPOINT,
8699
},
87100
}
88101
],

tests/test_context.py

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def test_workflow_headers(qstash_client: QStash) -> None:
3030
initial_payload="my-payload",
3131
env=None,
3232
retries=None,
33-
failure_url=WORKFLOW_ENDPOINT
33+
failure_url=WORKFLOW_ENDPOINT,
3434
)
3535

3636
def execute() -> None:
@@ -60,28 +60,41 @@ def execute() -> None:
6060
"queue": None,
6161
"headers": {
6262
"Content-Type": "application/json",
63-
"Upstash-Callback": WORKFLOW_ENDPOINT,
63+
"Upstash-Method": "PATCH",
64+
"Upstash-Workflow-Init": "false",
65+
"Upstash-Workflow-RunId": "wfr-id",
66+
"Upstash-Workflow-Url": "https://www.my-website.com/api",
67+
"Upstash-Feature-Set": "WF_NoDelete,InitialBody",
68+
"Upstash-Failure-Callback-Forward-Upstash-Workflow-Is-Failure": "true",
69+
"Upstash-Failure-Callback-Forward-Upstash-Workflow-Failure-Callback": "true",
70+
"Upstash-Failure-Callback-Workflow-Runid": "wfr-id",
71+
"Upstash-Failure-Callback-Workflow-Init": "false",
72+
"Upstash-Failure-Callback-Workflow-Url": "https://www.my-website.com/api",
73+
"Upstash-Failure-Callback-Workflow-Calltype": "failureCall",
74+
"Upstash-Callback-Failure-Callback-Forward-Upstash-Workflow-Is-Failure": "true",
75+
"Upstash-Callback-Failure-Callback-Forward-Upstash-Workflow-Failure-Callback": "true",
76+
"Upstash-Callback-Failure-Callback-Workflow-Runid": "wfr-id",
77+
"Upstash-Callback-Failure-Callback-Workflow-Init": "false",
78+
"Upstash-Callback-Failure-Callback-Workflow-Url": "https://www.my-website.com/api",
79+
"Upstash-Callback-Failure-Callback-Workflow-Calltype": "failureCall",
80+
"Upstash-Failure-Callback-Retries": "3",
81+
"Upstash-Callback-Failure-Callback-Retries": "3",
82+
"Upstash-Retries": "10",
83+
"Upstash-Callback-Retries": "3",
84+
"Upstash-Forward-my-header": "my-value",
85+
"Upstash-Callback": "https://www.my-website.com/api",
86+
"Upstash-Callback-Workflow-RunId": "wfr-id",
87+
"Upstash-Callback-Workflow-CallType": "fromCallback",
88+
"Upstash-Callback-Workflow-Init": "false",
89+
"Upstash-Callback-Workflow-Url": "https://www.my-website.com/api",
6490
"Upstash-Callback-Feature-Set": "LazyFetch,InitialBody",
6591
"Upstash-Callback-Forward-Upstash-Workflow-Callback": "true",
66-
"Upstash-Callback-Forward-Upstash-Workflow-Concurrent": "1",
67-
"Upstash-Callback-Forward-Upstash-Workflow-ContentType": "application/json",
6892
"Upstash-Callback-Forward-Upstash-Workflow-StepId": "1",
6993
"Upstash-Callback-Forward-Upstash-Workflow-StepName": "my-step",
7094
"Upstash-Callback-Forward-Upstash-Workflow-StepType": "Call",
71-
"Upstash-Callback-Retries": "3",
72-
"Upstash-Callback-Workflow-CallType": "fromCallback",
73-
"Upstash-Callback-Workflow-Init": "false",
74-
"Upstash-Callback-Workflow-RunId": "wfr-id",
75-
"Upstash-Callback-Workflow-Url": WORKFLOW_ENDPOINT,
76-
"Upstash-Failure-Callback-Retries": "3",
77-
"Upstash-Feature-Set": "WF_NoDelete,InitialBody",
78-
"Upstash-Forward-my-header": "my-value",
79-
"Upstash-Method": "PATCH",
80-
"Upstash-Retries": str(retries),
95+
"Upstash-Callback-Forward-Upstash-Workflow-Concurrent": "1",
96+
"Upstash-Callback-Forward-Upstash-Workflow-ContentType": "application/json",
8197
"Upstash-Workflow-CallType": "toCallback",
82-
"Upstash-Workflow-Init": "false",
83-
"Upstash-Workflow-RunId": "wfr-id",
84-
"Upstash-Workflow-Url": WORKFLOW_ENDPOINT,
8598
},
8699
}
87100
],

upstash_workflow/asyncio/serve/serve.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,11 @@ def _serve_base(
7070

7171
async def _handler(request: TRequest) -> TResponse:
7272
workflow_url, workflow_failure_url = _determine_urls(
73-
cast(_AsyncRequest, request), url, base_url, failure_function, failure_url
73+
cast(_AsyncRequest, request),
74+
url,
75+
base_url,
76+
False if failure_function is None else True,
77+
failure_url,
7478
)
7579

7680
request_payload = await _get_payload(request) or ""

upstash_workflow/asyncio/workflow_parser.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@ async def _handle_failure(
8484

8585
# Attempt running route_function until the first step
8686
auth_check = await _DisabledWorkflowContext[Any].try_authentication(
87-
route_function, cast(AsyncWorkflowContext[TInitialPayload], workflow_context)
87+
route_function,
88+
cast(AsyncWorkflowContext[TInitialPayload], workflow_context),
8889
)
8990

9091
if auth_check == "run-ended":

upstash_workflow/context/auto_executor.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ def submit_steps_to_qstash(
7777
self.context.retries,
7878
lazy_step.retries if isinstance(lazy_step, _LazyCallStep) else None,
7979
lazy_step.timeout if isinstance(lazy_step, _LazyCallStep) else None,
80+
workflow_failure_url=self.context.failure_url,
8081
).headers
8182

8283
will_wait = (

upstash_workflow/serve/options.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
_FinishCondition,
2222
)
2323
from upstash_workflow import WorkflowContext
24-
from upstash_workflow import AsyncWorkflowContext
2524
from dataclasses import dataclass
2625

2726
_logger = logging.getLogger(__name__)
@@ -156,12 +155,7 @@ def _determine_urls(
156155
request: Union[_SyncRequest, _AsyncRequest],
157156
url: Optional[str],
158157
base_url: Optional[str],
159-
failure_function: Optional[
160-
Callable[
161-
[Union[WorkflowContext[TInitialPayload], AsyncWorkflowContext[TInitialPayload]], int, str, Dict[str, str]],
162-
Any,
163-
]
164-
],
158+
failure_function_exists: bool,
165159
failure_url: Optional[str],
166160
) -> Tuple[str, str | None]:
167161
initial_workflow_url = str(url if url is not None else request.url)
@@ -178,7 +172,7 @@ def replace_base(match: Match[str]) -> str:
178172
else:
179173
workflow_url = initial_workflow_url
180174

181-
workflow_failure_url = workflow_url if failure_function else failure_url
175+
workflow_failure_url = workflow_url if failure_function_exists else failure_url
182176
return cast(Tuple[str, str | None], [workflow_url, workflow_failure_url])
183177

184178

upstash_workflow/serve/serve.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,11 @@ def _handler(request: TRequest) -> TResponse:
8080
:return: A response.
8181
"""
8282
workflow_url, workflow_failure_url = _determine_urls(
83-
cast(_SyncRequest, request), url, base_url, failure_function, failure_url
83+
cast(_SyncRequest, request),
84+
url,
85+
base_url,
86+
False if failure_function is None else True,
87+
failure_url,
8488
)
8589

8690
request_payload = _get_payload(request) or ""

upstash_workflow/workflow_parser.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
import json
2-
from typing import Optional, List, Tuple, Union, Callable, Dict, Any, Literal, TypeVar, cast
2+
from typing import (
3+
Optional,
4+
List,
5+
Tuple,
6+
Union,
7+
Callable,
8+
Dict,
9+
Any,
10+
Literal,
11+
TypeVar,
12+
cast,
13+
)
314
from upstash_workflow.utils import _nanoid, _decode_base64
415
from upstash_workflow.constants import (
516
WORKFLOW_PROTOCOL_VERSION,

0 commit comments

Comments
 (0)