MCPcopy
hub / github.com/plotly/dash / test_cbva004_named_args

Function test_cbva004_named_args

tests/integration/callbacks/test_validation.py:142–185  ·  view source on GitHub ↗
(named_out, named_in, named_state, dash_duo)

Source from the content-addressed store, hash-verified

140@pytest.mark.parametrize("named_out", [True, False])
141@pytest.mark.parametrize("named_in,named_state", [(True, True), (False, False)])
142def test_cbva004_named_args(named_out, named_in, named_state, dash_duo):
143 app = Dash(__name__)
144 app.layout = html.Div(
145 [
146 html.Div("Hi", id="in"),
147 html.Div("gh", id="state"),
148 html.Div(id="out1"),
149 html.Div(id="out2"),
150 ]
151 )
152
153 def make_args(*a):
154 args = []
155 kwargs = {}
156 names = ["output", "inputs", "state"]
157 flags = [named_out, named_in, named_state]
158 for ai, name, flag in zip(a, names, flags):
159 if flag:
160 kwargs[name] = ai
161 else:
162 args.append(ai)
163 return args, kwargs
164
165 args, kwargs = make_args(
166 Output("out1", "children"), Input("in", "children"), State("state", "children")
167 )
168
169 @app.callback(*args, **kwargs)
170 def o1(i, s):
171 return "1: " + i + s
172
173 args, kwargs = make_args(
174 [Output("out2", "children")],
175 [Input("in", "children")],
176 [State("state", "children")],
177 )
178
179 @app.callback(*args, **kwargs)
180 def o2(i, s):
181 return ("2: " + i + s,)
182
183 dash_duo.start_server(app)
184 dash_duo.wait_for_text_to_equal("#out1", "1: High")
185 dash_duo.wait_for_text_to_equal("#out2", "2: High")
186
187
188def test_cbva005_tuple_args(dash_duo):

Callers

nothing calls this directly

Calls 7

DashClass · 0.90
OutputClass · 0.90
InputClass · 0.90
StateClass · 0.90
make_argsFunction · 0.85
start_serverMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…