(named_out, named_in, named_state, dash_duo)
| 140 | @pytest.mark.parametrize("named_out", [True, False]) |
| 141 | @pytest.mark.parametrize("named_in,named_state", [(True, True), (False, False)]) |
| 142 | def 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 | |
| 188 | def test_cbva005_tuple_args(dash_duo): |
nothing calls this directly
no test coverage detected
searching dependent graphs…