Skip to content
This repository was archived by the owner on Jun 3, 2024. It is now read-only.

Commit 2bfaa28

Browse files
committed
update loading component tests for new class usage
1 parent 22a1975 commit 2bfaa28

File tree

1 file changed

+40
-37
lines changed

1 file changed

+40
-37
lines changed

tests/integration/loading/test_loading_component.py

Lines changed: 40 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,10 @@ def updateDiv(children):
2323
with lock:
2424
dash_dcc.start_server(app)
2525
dash_dcc.find_element('.loading .dash-spinner')
26+
# ensure inner component is also mounted
27+
dash_dcc.wait_for_text_to_equal("#div-1", "")
2628

27-
dash_dcc.find_element('.loading #div-1')
29+
dash_dcc.wait_for_text_to_equal('#div-1', 'content')
2830

2931
assert not dash_dcc.get_logs()
3032

@@ -42,19 +44,21 @@ def test_ldcp002_loading_component_action(dash_dcc):
4244
def updateDiv(n_clicks):
4345
if n_clicks is not None:
4446
with lock:
45-
return
47+
return "changed"
4648

4749
return 'content'
4850

4951
with lock:
5052
dash_dcc.start_server(app)
51-
dash_dcc.find_element('.loading #div-1')
53+
dash_dcc.wait_for_text_to_equal('#div-1', "content")
5254

5355
dash_dcc.find_element('#root').click()
5456

5557
dash_dcc.find_element('.loading .dash-spinner')
58+
# mounted but hidden, so looks like no text
59+
dash_dcc.wait_for_text_to_equal('#div-1', "")
5660

57-
dash_dcc.find_element('.loading #div-1')
61+
dash_dcc.wait_for_text_to_equal('#div-1', "changed")
5862

5963
assert not dash_dcc.get_logs()
6064

@@ -69,42 +73,42 @@ def test_ldcp003_multiple_loading_components(dash_dcc):
6973
dcc.Loading([html.Button(id='btn-2')], className='loading-2')
7074
], id='root')
7175

72-
@app.callback(Output('btn-1', 'value'), [Input('btn-2', 'n_clicks')])
76+
@app.callback(Output('btn-1', 'children'), [Input('btn-2', 'n_clicks')])
7377
def updateDiv(n_clicks):
7478
if n_clicks is not None:
7579
with lock:
76-
return
80+
return "changed 1"
7781

78-
return 'content'
82+
return 'content 1'
7983

80-
@app.callback(Output('btn-2', 'value'), [Input('btn-1', 'n_clicks')])
84+
@app.callback(Output('btn-2', 'children'), [Input('btn-1', 'n_clicks')])
8185
def updateDiv(n_clicks):
8286
if n_clicks is not None:
8387
with lock:
84-
return
88+
return "changed 2"
8589

86-
return 'content'
90+
return 'content 2'
8791

8892
dash_dcc.start_server(app)
8993

90-
dash_dcc.find_element('.loading-1 #btn-1')
91-
dash_dcc.find_element('.loading-2 #btn-2')
94+
dash_dcc.wait_for_text_to_equal('#btn-1', "content 1")
95+
dash_dcc.wait_for_text_to_equal('#btn-2', "content 2")
9296

9397
with lock:
9498
dash_dcc.find_element('#btn-1').click()
9599

96100
dash_dcc.find_element('.loading-2 .dash-spinner')
97-
dash_dcc.find_element('.loading-1 #btn-1')
101+
dash_dcc.wait_for_text_to_equal("#btn-2", "")
98102

99-
dash_dcc.find_element('.loading-2 #btn-2')
103+
dash_dcc.wait_for_text_to_equal("#btn-2", "changed 2")
100104

101105
with lock:
102106
dash_dcc.find_element('#btn-2').click()
103107

104108
dash_dcc.find_element('.loading-1 .dash-spinner')
109+
dash_dcc.wait_for_text_to_equal("#btn-1", "")
105110

106-
dash_dcc.find_element('.loading-1 #btn-1')
107-
dash_dcc.find_element('.loading-2 #btn-2')
111+
dash_dcc.wait_for_text_to_equal("#btn-1", "changed 1")
108112

109113
assert not dash_dcc.get_logs()
110114

@@ -121,51 +125,50 @@ def test_ldcp004_nested_loading_components(dash_dcc):
121125
], className='loading-1')
122126
], id='root')
123127

124-
@app.callback(Output('btn-1', 'value'), [Input('btn-2', 'n_clicks')])
128+
@app.callback(Output('btn-1', 'children'), [Input('btn-2', 'n_clicks')])
125129
def updateDiv(n_clicks):
126130
if n_clicks is not None:
127131
with lock:
128-
return
132+
return "changed 1"
129133

130-
return 'content'
134+
return 'content 1'
131135

132-
@app.callback(Output('btn-2', 'value'), [Input('btn-1', 'n_clicks')])
136+
@app.callback(Output('btn-2', 'children'), [Input('btn-1', 'n_clicks')])
133137
def updateDiv(n_clicks):
134138
if n_clicks is not None:
135139
with lock:
136-
return
140+
return "changed 2"
137141

138-
return 'content'
142+
return 'content 2'
139143

140144
dash_dcc.start_server(app)
141145

142-
dash_dcc.find_element('.loading-1 #btn-1')
143-
dash_dcc.find_element('.loading-2 #btn-2')
146+
dash_dcc.wait_for_text_to_equal('#btn-1', "content 1")
147+
dash_dcc.wait_for_text_to_equal('#btn-2', "content 2")
144148

145149
with lock:
146150
dash_dcc.find_element('#btn-1').click()
147151

148152
dash_dcc.find_element('.loading-2 .dash-spinner')
149-
dash_dcc.find_element('.loading-1 #btn-1')
153+
dash_dcc.wait_for_text_to_equal("#btn-2", "")
150154

151-
dash_dcc.find_element('.loading-2 #btn-2')
155+
dash_dcc.wait_for_text_to_equal("#btn-2", "changed 2")
152156

153157
with lock:
154158
dash_dcc.find_element('#btn-2').click()
155159

156160
dash_dcc.find_element('.loading-1 .dash-spinner')
161+
dash_dcc.wait_for_text_to_equal("#btn-1", "")
157162

158-
dash_dcc.find_element('.loading-1 #btn-1')
159-
dash_dcc.find_element('.loading-2 #btn-2')
163+
dash_dcc.wait_for_text_to_equal("#btn-1", "changed 1")
160164

161165
assert not dash_dcc.get_logs()
162166

163167

164168
def test_ldcp005_dynamic_loading_component(dash_dcc):
165169
lock = Lock()
166170

167-
app = dash.Dash(__name__)
168-
app.config['suppress_callback_exceptions'] = True
171+
app = dash.Dash(__name__, suppress_callback_exceptions=True)
169172

170173
app.layout = html.Div([html.Button(id='btn-1'), html.Div(id='div-1')])
171174

@@ -180,30 +183,30 @@ def updateDiv(n_clicks):
180183
dcc.Loading([html.Button(id='btn-3')], className='loading-1')
181184
])
182185

183-
@app.callback(Output('btn-3', 'content'), [Input('btn-2', 'n_clicks')])
186+
@app.callback(Output('btn-3', 'children'), [Input('btn-2', 'n_clicks')])
184187
def updateDynamic(n_clicks):
185188
if n_clicks is None:
186-
return
189+
return "content"
187190

188191
with lock:
189-
return 'content'
192+
return "changed"
190193

191194
dash_dcc.start_server(app)
192195

193196
dash_dcc.find_element('#btn-1')
194-
dash_dcc.find_element('#div-1')
197+
dash_dcc.wait_for_text_to_equal('#div-1', "")
195198

196199
dash_dcc.find_element('#btn-1').click()
197200

198201
dash_dcc.find_element('#div-1 #btn-2')
199-
dash_dcc.find_element('.loading-1 #btn-3')
202+
dash_dcc.wait_for_text_to_equal('#btn-3', "content")
200203

201204
with lock:
202205
dash_dcc.find_element('#btn-2').click()
203206

204207
dash_dcc.find_element('.loading-1 .dash-spinner')
208+
dash_dcc.wait_for_text_to_equal('#btn-3', "")
205209

206-
dash_dcc.find_element('#div-1 #btn-2')
207-
dash_dcc.find_element('.loading-1 #btn-3')
210+
dash_dcc.wait_for_text_to_equal('#btn-3', "changed")
208211

209212
assert not dash_dcc.get_logs()

0 commit comments

Comments
 (0)