Do not allow call_function callback
argument to be added afterwards
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
d8e988105f
commit
c0fb3fdb45
@ -1100,7 +1100,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