@@ -521,10 +521,11 @@ def test_rcparams_reset_after_fail():
521
521
522
522
523
523
@pytest .mark .skipif (sys .platform != "linux" , reason = "Linux only" )
524
- def test_backend_fallback_headless (tmp_path ):
524
+ def test_backend_fallback_headless_invalid_backend (tmp_path ):
525
525
env = {** os .environ ,
526
526
"DISPLAY" : "" , "WAYLAND_DISPLAY" : "" ,
527
527
"MPLBACKEND" : "" , "MPLCONFIGDIR" : str (tmp_path )}
528
+ # plotting should fail with the tkagg backend selected in a headless environment
528
529
with pytest .raises (subprocess .CalledProcessError ):
529
530
subprocess_run_for_testing (
530
531
[sys .executable , "-c" ,
@@ -536,6 +537,20 @@ def test_backend_fallback_headless(tmp_path):
536
537
env = env , check = True , stderr = subprocess .DEVNULL )
537
538
538
539
540
+ @pytest .mark .skipif (sys .platform != "linux" , reason = "Linux only" )
541
+ def test_backend_fallback_headless_auto_backend (tmp_path ):
542
+ env = {** os .environ ,
543
+ "DISPLAY" : "" , "WAYLAND_DISPLAY" : "" ,
544
+ "MPLBACKEND" : "" , "MPLCONFIGDIR" : str (tmp_path )}
545
+ # plotting should succeed using auto-backend selection in a headless environment
546
+ subprocess_run_for_testing (
547
+ [sys .executable , "-c" ,
548
+ "import matplotlib.pyplot;"
549
+ "matplotlib.pyplot.plot(42);"
550
+ ],
551
+ env = env , check = True , stderr = subprocess .DEVNULL )
552
+
553
+
539
554
@pytest .mark .skipif (
540
555
sys .platform == "linux" and not _c_internal_utils .xdisplay_is_valid (),
541
556
reason = "headless" )
0 commit comments