@@ -86,7 +86,11 @@ def collect():
86
86
87
87
box , rc = solara .render (SquareButton (3 , on_render = collect ), handle_error = False )
88
88
button = rc .find (v .Btn , children = ["Run" ]).widget
89
+ # a combination of .clear/.set is needed to force the rendering of all the states
90
+ # otherwise some states are not rendered
91
+ square ._start_event .clear () # type: ignore
89
92
button .click ()
93
+ square ._start_event .set () # type: ignore
90
94
assert square ._last_finished_event # type: ignore
91
95
square ._last_finished_event .wait () # type: ignore
92
96
assert results == [
@@ -98,7 +102,9 @@ def collect():
98
102
results .clear ()
99
103
rc .render (SquareButton (2 , on_render = collect ))
100
104
button = rc .find (v .Btn , children = ["Run" ]).widget
105
+ square ._start_event .clear ()
101
106
button .click ()
107
+ square ._start_event .set ()
102
108
square ._last_finished_event .wait () # type: ignore
103
109
assert results == [
104
110
# extra finished due to the rc.render call
@@ -152,7 +158,9 @@ def collect():
152
158
153
159
box , rc = solara .render (SquareButtonAsync (3 , on_render = collect ), handle_error = False )
154
160
button = rc .find (v .Btn , children = ["Run" ]).widget
161
+ square_async ._start_event .clear () # type: ignore
155
162
button .click ()
163
+ square_async ._start_event .set () # type: ignore
156
164
assert square_async .current_future # type: ignore
157
165
await square_async .current_future # type: ignore
158
166
assert results == [
@@ -164,7 +172,9 @@ def collect():
164
172
results .clear ()
165
173
rc .render (SquareButtonAsync (2 , on_render = collect ))
166
174
button = rc .find (v .Btn , children = ["Run" ]).widget
175
+ square_async ._start_event .clear () # type: ignore
167
176
button .click ()
177
+ square_async ._start_event .set () # type: ignore
168
178
await square_async .current_future # type: ignore
169
179
assert results == [
170
180
# extra finished due to the rc.render call
@@ -195,8 +205,9 @@ def Test():
195
205
196
206
box , rc = solara .render (Test (), handle_error = False )
197
207
button = rc .find (v .Btn , children = ["Run" ])[0 ].widget
208
+ square ._start_event .clear () # type: ignore
198
209
button .click ()
199
- assert square ._last_finished_event # type: ignore
210
+ square ._start_event . set () # type: ignore
200
211
square ._last_finished_event .wait () # type: ignore
201
212
assert (
202
213
results2
@@ -214,7 +225,9 @@ def Test():
214
225
results2 .clear ()
215
226
results3 .clear ()
216
227
button = rc .find (v .Btn , children = ["Run" ])[1 ].widget
228
+ square ._start_event .clear () # type: ignore
217
229
button .click ()
230
+ square ._start_event .set () # type: ignore
218
231
assert square ._last_finished_event # type: ignore
219
232
square ._last_finished_event .wait () # type: ignore
220
233
assert (
@@ -244,7 +257,9 @@ def collect():
244
257
button = rc .find (v .Btn , children = ["Run" ]).widget
245
258
cancel_square = True
246
259
try :
260
+ square ._start_event .clear () # type: ignore
247
261
button .click ()
262
+ square ._start_event .set () # type: ignore
248
263
assert square ._last_finished_event # type: ignore
249
264
square ._last_finished_event .wait () # type: ignore
250
265
assert results == [
@@ -284,7 +299,9 @@ def collect():
284
299
button = rc .find (v .Btn , children = ["Run" ]).widget
285
300
cancel_square_async = True
286
301
try :
302
+ square_async ._start_event .clear () # type: ignore
287
303
button .click ()
304
+ square_async ._start_event .set () # type: ignore
288
305
assert square_async .current_future # type: ignore
289
306
try :
290
307
await square_async .current_future # type: ignore
@@ -337,7 +354,9 @@ def collect2():
337
354
button2 = rc2 .find (v .Btn , children = ["Run" ]).widget
338
355
339
356
with context1 :
357
+ something ._start_event .clear () # type: ignore
340
358
button1 .click ()
359
+ something ._start_event .set () # type: ignore
341
360
finished_event1 = something ._last_finished_event # type: ignore
342
361
assert finished_event1
343
362
@@ -356,7 +375,9 @@ def collect2():
356
375
assert results2 == [(TaskState .NOTCALLED , None )]
357
376
358
377
with context2 :
378
+ something ._start_event .clear () # type: ignore
359
379
button2 .click ()
380
+ something ._start_event .set () # type: ignore
360
381
finished_event2 = something ._last_finished_event # type: ignore
361
382
assert finished_event2
362
383
finished_event2 .wait ()
0 commit comments