Do not allow call_function callback
argument to be added afterwards (#4552)
The default behavior for EventSpec is to treat the spec as a partial, wherein if additional unfilled arguments are available, and the event trigger wants to pass additional arguments, they will be applied positionally. However, it never makes sense to fill in `callback` with an event trigger arg. Therefore, if the callback is not provided initially, set it to None explicitly so that some invalid value cannot be added later.
This commit is contained in:
parent
8477a1aba0
commit
316a0c9bde
@ -1190,7 +1190,7 @@ def call_function(
|
||||
Returns:
|
||||
EventSpec: An event that will execute the client side javascript.
|
||||
"""
|
||||
callback_kwargs = {}
|
||||
callback_kwargs = {"callback": None}
|
||||
if callback is not None:
|
||||
callback_kwargs = {
|
||||
"callback": format.format_queue_events(
|
||||
|
@ -223,12 +223,17 @@ def test_event_console_log():
|
||||
)
|
||||
assert (
|
||||
format.format_event(spec)
|
||||
== 'Event("_call_function", {function:(() => (console["log"]("message")))})'
|
||||
== 'Event("_call_function", {function:(() => (console["log"]("message"))),callback:null})'
|
||||
)
|
||||
spec = event.console_log(Var(_js_expr="message"))
|
||||
assert (
|
||||
format.format_event(spec)
|
||||
== 'Event("_call_function", {function:(() => (console["log"](message)))})'
|
||||
== 'Event("_call_function", {function:(() => (console["log"](message))),callback:null})'
|
||||
)
|
||||
spec2 = event.console_log(Var(_js_expr="message2")).add_args(Var("throwaway"))
|
||||
assert (
|
||||
format.format_event(spec2)
|
||||
== 'Event("_call_function", {function:(() => (console["log"](message2))),callback:null})'
|
||||
)
|
||||
|
||||
|
||||
@ -243,12 +248,17 @@ def test_event_window_alert():
|
||||
)
|
||||
assert (
|
||||
format.format_event(spec)
|
||||
== 'Event("_call_function", {function:(() => (window["alert"]("message")))})'
|
||||
== 'Event("_call_function", {function:(() => (window["alert"]("message"))),callback:null})'
|
||||
)
|
||||
spec = event.window_alert(Var(_js_expr="message"))
|
||||
assert (
|
||||
format.format_event(spec)
|
||||
== 'Event("_call_function", {function:(() => (window["alert"](message)))})'
|
||||
== 'Event("_call_function", {function:(() => (window["alert"](message))),callback:null})'
|
||||
)
|
||||
spec2 = event.window_alert(Var(_js_expr="message2")).add_args(Var("throwaway"))
|
||||
assert (
|
||||
format.format_event(spec2)
|
||||
== 'Event("_call_function", {function:(() => (window["alert"](message2))),callback:null})'
|
||||
)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user