From 95b627553645dada0ba9e338b0da7005ecfe3fd4 2024-06-28 10:02:26 From: Ian Thomas Date: 2024-06-28 10:02:26 Subject: [PATCH] Isolate tests so state doesn't leak to other tests --- diff --git a/IPython/core/tests/test_pylabtools.py b/IPython/core/tests/test_pylabtools.py index e9d98ff..31d3dbe 100644 --- a/IPython/core/tests/test_pylabtools.py +++ b/IPython/core/tests/test_pylabtools.py @@ -258,6 +258,29 @@ class TestPylabSwitch(object): assert gui == "qt" assert s.pylab_gui_select == "qt" + @dec.skipif(not pt._matplotlib_manages_backends()) + def test_backend_module_name_case_sensitive(self): + # Matplotlib backend names are case insensitive unless explicitly specified using + # "module://some_module.some_name" syntax which are case sensitive for mpl >= 3.9.1 + all_lowercase = "module://matplotlib_inline.backend_inline" + some_uppercase = "module://matplotlib_inline.Backend_inline" + mpl3_9_1 = matplotlib.__version_info__ >= (3, 9, 1) + + s = self.Shell() + s.enable_matplotlib(all_lowercase) + if mpl3_9_1: + with pytest.raises(RuntimeError): + s.enable_matplotlib(some_uppercase) + else: + s.enable_matplotlib(some_uppercase) + + s.run_line_magic("matplotlib", all_lowercase) + if mpl3_9_1: + with pytest.raises(RuntimeError): + s.run_line_magic("matplotlib", some_uppercase) + else: + s.run_line_magic("matplotlib", some_uppercase) + def test_no_gui_backends(): for k in ['agg', 'svg', 'pdf', 'ps']: @@ -350,27 +373,3 @@ def test_backend_entry_point(): def test_backend_unknown(): with pytest.raises(RuntimeError if pt._matplotlib_manages_backends() else KeyError): pt.find_gui_and_backend("name-does-not-exist") - - -@dec.skipif(not pt._matplotlib_manages_backends()) -def test_backend_module_name_case_sensitive(): - # Matplotlib backend names are case insensitive unless explicitly specified using - # "module://some_module.some_name" syntax which are case sensitive for mpl >= 3.9.1 - all_lowercase = "module://matplotlib_inline.backend_inline" - some_uppercase = "module://matplotlib_inline.Backend_inline" - ip = get_ipython() - mpl3_9_1 = matplotlib.__version_info__ >= (3, 9, 1) - - ip.enable_matplotlib(all_lowercase) - if mpl3_9_1: - with pytest.raises(RuntimeError): - ip.enable_matplotlib(some_uppercase) - else: - ip.enable_matplotlib(some_uppercase) - - ip.run_line_magic("matplotlib", all_lowercase) - if mpl3_9_1: - with pytest.raises(RuntimeError): - ip.run_line_magic("matplotlib", some_uppercase) - else: - ip.run_line_magic("matplotlib", some_uppercase)