@@ -175,7 +175,11 @@ def test_contains():
175
175
176
176
# draw the text. This is important, as the contains method can only work
177
177
# when a renderer exists.
178
- plt .draw ()
178
+ plt .ion ()
179
+ try :
180
+ plt .draw ()
181
+ finally :
182
+ plt .ioff ()
179
183
180
184
for x , y in zip (xs .flat , ys .flat ):
181
185
mevent .x , mevent .y = plt .gca ().transAxes .transform_point ([x , y ])
@@ -235,35 +239,40 @@ def test_axes_titles():
235
239
236
240
@cleanup
237
241
def test_set_position ():
238
- fig , ax = plt .subplots ()
242
+ plt .ion ()
243
+
244
+ try :
245
+ fig , ax = plt .subplots ()
239
246
240
- # test set_position
241
- ann = ax .annotate (
242
- 'test' , (0 , 0 ), xytext = (0 , 0 ), textcoords = 'figure pixels' )
243
- plt .draw ()
247
+ # test set_position
248
+ ann = ax .annotate (
249
+ 'test' , (0 , 0 ), xytext = (0 , 0 ), textcoords = 'figure pixels' )
250
+ plt .draw ()
244
251
245
- init_pos = ann .get_window_extent (fig .canvas .renderer )
246
- shift_val = 15
247
- ann .set_position ((shift_val , shift_val ))
248
- plt .draw ()
249
- post_pos = ann .get_window_extent (fig .canvas .renderer )
252
+ init_pos = ann .get_window_extent (fig .canvas .renderer )
253
+ shift_val = 15
254
+ ann .set_position ((shift_val , shift_val ))
255
+ plt .draw ()
256
+ post_pos = ann .get_window_extent (fig .canvas .renderer )
250
257
251
- for a , b in zip (init_pos .min , post_pos .min ):
252
- assert a + shift_val == b
258
+ for a , b in zip (init_pos .min , post_pos .min ):
259
+ assert a + shift_val == b
253
260
254
- # test xyann
255
- ann = ax .annotate (
256
- 'test' , (0 , 0 ), xytext = (0 , 0 ), textcoords = 'figure pixels' )
257
- plt .draw ()
261
+ # test xyann
262
+ ann = ax .annotate (
263
+ 'test' , (0 , 0 ), xytext = (0 , 0 ), textcoords = 'figure pixels' )
264
+ plt .draw ()
258
265
259
- init_pos = ann .get_window_extent (fig .canvas .renderer )
260
- shift_val = 15
261
- ann .xyann = (shift_val , shift_val )
262
- plt .draw ()
263
- post_pos = ann .get_window_extent (fig .canvas .renderer )
266
+ init_pos = ann .get_window_extent (fig .canvas .renderer )
267
+ shift_val = 15
268
+ ann .xyann = (shift_val , shift_val )
269
+ plt .draw ()
270
+ post_pos = ann .get_window_extent (fig .canvas .renderer )
264
271
265
- for a , b in zip (init_pos .min , post_pos .min ):
266
- assert a + shift_val == b
272
+ for a , b in zip (init_pos .min , post_pos .min ):
273
+ assert a + shift_val == b
274
+ finally :
275
+ plt .ioff ()
267
276
268
277
269
278
def test_get_rotation_string ():
@@ -373,8 +382,14 @@ def test_annotation_negative_fig_coords():
373
382
374
383
@cleanup
375
384
def test_text_stale ():
385
+ # A version of draw_all that draws even when interactive is off
386
+ def draw_all_when_not_interactive ():
387
+ for f_mgr in plt ._pylab_helpers .Gcf .get_all_fig_managers ():
388
+ if f_mgr .canvas .figure .stale :
389
+ f_mgr .canvas .draw ()
390
+
376
391
fig , (ax1 , ax2 ) = plt .subplots (1 , 2 )
377
- plt . draw_all ()
392
+ draw_all_when_not_interactive ()
378
393
assert not ax1 .stale
379
394
assert not ax2 .stale
380
395
assert not fig .stale
@@ -389,7 +404,7 @@ def test_text_stale():
389
404
assert ann1 .stale
390
405
assert fig .stale
391
406
392
- plt . draw_all ()
407
+ draw_all_when_not_interactive ()
393
408
assert not ax1 .stale
394
409
assert not ax2 .stale
395
410
assert not fig .stale
0 commit comments