##// END OF EJS Templates
Implement a context manager as a property locking mechanism in Widget.
Implement a context manager as a property locking mechanism in Widget.

File last commit:

r12924:4d5da0a7
r14579:f0c9c00e
Show More
test_pylabtools.py
141 lines | 4.5 KiB | text/x-python | PythonLexer
/ IPython / core / tests / test_pylabtools.py
Fernando Perez
Add test file I forgot to commit.
r3734 """Tests for pylab tools module.
"""
#-----------------------------------------------------------------------------
# Copyright (c) 2011, the IPython Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file COPYING.txt, distributed with this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
from __future__ import print_function
# Stdlib imports
# Third-party imports
import matplotlib; matplotlib.use('Agg')
import nose.tools as nt
from matplotlib import pyplot as plt
Fernando Perez
Fix critical bug with pylab support inadvertently introduced in #648....
r5468 import numpy as np
Fernando Perez
Add test file I forgot to commit.
r3734
# Our own imports
MinRK
update pylabtools tests
r11329 from IPython.core.interactiveshell import InteractiveShell
Fernando Perez
Add test file I forgot to commit.
r3734 from .. import pylabtools as pt
#-----------------------------------------------------------------------------
# Globals and constants
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Local utilities
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Classes and functions
#-----------------------------------------------------------------------------
def test_figure_to_svg():
# simple empty-figure test
fig = plt.figure()
Thomas Kluyver
Remove uses of @parametric decorator
r12374 nt.assert_equal(pt.print_figure(fig, 'svg'), None)
Fernando Perez
Add test file I forgot to commit.
r3734
plt.close('all')
# simple check for at least svg-looking output
Fernando Perez
Don't use new subplots() call in matplotlib so tests pass with mpl 0.99
r3745 fig = plt.figure()
ax = fig.add_subplot(1,1,1)
Fernando Perez
Add test file I forgot to commit.
r3734 ax.plot([1,2,3])
plt.draw()
MinRK
update pylabtools test to use new print_figure
r3984 svg = pt.print_figure(fig, 'svg')[:100].lower()
Thomas Kluyver
Fix pylabtools test for Python 3
r12410 nt.assert_in(b'doctype svg', svg)
Fernando Perez
Fix critical bug with pylab support inadvertently introduced in #648....
r5468
def test_import_pylab():
ip = get_ipython()
Fernando Perez
Refactor gui/pylab integration to eliminate code duplication....
r5469 ns = {}
pt.import_pylab(ns, import_all=False)
nt.assert_true('plt' in ns)
nt.assert_equal(ns['np'], np)
Ryan May
Add tests of switching logic.
r7966
class TestPylabSwitch(object):
MinRK
update pylabtools tests
r11329 class Shell(InteractiveShell):
def enable_gui(self, gui):
pass
Ryan May
Add tests of switching logic.
r7966 def setup(self):
Ryan May
Improve test mocking to actually capture failure mode.
r8003 import matplotlib
def act_mpl(backend):
matplotlib.rcParams['backend'] = backend
# Save rcParams since they get modified
self._saved_rcParams = matplotlib.rcParams
Thomas Kluyver
test_pylabtools also needs to modify matplotlib.rcParamsOrig...
r12924 self._saved_rcParamsOrig = matplotlib.rcParamsOrig
Ryan May
Improve test mocking to actually capture failure mode.
r8003 matplotlib.rcParams = dict(backend='Qt4Agg')
Thomas Kluyver
test_pylabtools also needs to modify matplotlib.rcParamsOrig...
r12924 matplotlib.rcParamsOrig = dict(backend='Qt4Agg')
Ryan May
Improve test mocking to actually capture failure mode.
r8003
# Mock out functions
Ryan May
Add tests of switching logic.
r7966 self._save_am = pt.activate_matplotlib
Ryan May
Improve test mocking to actually capture failure mode.
r8003 pt.activate_matplotlib = act_mpl
Ryan May
Add tests of switching logic.
r7966 self._save_ip = pt.import_pylab
pt.import_pylab = lambda *a,**kw:None
self._save_cis = pt.configure_inline_support
pt.configure_inline_support = lambda *a,**kw:None
def teardown(self):
pt.activate_matplotlib = self._save_am
pt.import_pylab = self._save_ip
pt.configure_inline_support = self._save_cis
Ryan May
Improve test mocking to actually capture failure mode.
r8003 import matplotlib
matplotlib.rcParams = self._saved_rcParams
Thomas Kluyver
test_pylabtools also needs to modify matplotlib.rcParamsOrig...
r12924 matplotlib.rcParamsOrig = self._saved_rcParamsOrig
Ryan May
Add tests of switching logic.
r7966
def test_qt(self):
s = self.Shell()
MinRK
update pylabtools tests
r11329 gui, backend = s.enable_matplotlib(None)
Ryan May
Add tests of switching logic.
r7966 nt.assert_equal(gui, 'qt')
nt.assert_equal(s.pylab_gui_select, 'qt')
MinRK
update pylabtools tests
r11329 gui, backend = s.enable_matplotlib('inline')
Ryan May
Add tests of switching logic.
r7966 nt.assert_equal(gui, 'inline')
nt.assert_equal(s.pylab_gui_select, 'qt')
MinRK
update pylabtools tests
r11329 gui, backend = s.enable_matplotlib('qt')
Ryan May
Add tests of switching logic.
r7966 nt.assert_equal(gui, 'qt')
nt.assert_equal(s.pylab_gui_select, 'qt')
MinRK
update pylabtools tests
r11329 gui, backend = s.enable_matplotlib('inline')
Ryan May
Add tests of switching logic.
r7966 nt.assert_equal(gui, 'inline')
nt.assert_equal(s.pylab_gui_select, 'qt')
MinRK
update pylabtools tests
r11329 gui, backend = s.enable_matplotlib()
Ryan May
Add tests of switching logic.
r7966 nt.assert_equal(gui, 'qt')
nt.assert_equal(s.pylab_gui_select, 'qt')
def test_inline(self):
s = self.Shell()
MinRK
update pylabtools tests
r11329 gui, backend = s.enable_matplotlib('inline')
Ryan May
Add tests of switching logic.
r7966 nt.assert_equal(gui, 'inline')
nt.assert_equal(s.pylab_gui_select, None)
MinRK
update pylabtools tests
r11329 gui, backend = s.enable_matplotlib('inline')
Ryan May
Add tests of switching logic.
r7966 nt.assert_equal(gui, 'inline')
nt.assert_equal(s.pylab_gui_select, None)
MinRK
update pylabtools tests
r11329 gui, backend = s.enable_matplotlib('qt')
Ryan May
Add tests of switching logic.
r7966 nt.assert_equal(gui, 'qt')
nt.assert_equal(s.pylab_gui_select, 'qt')
def test_qt_gtk(self):
s = self.Shell()
MinRK
update pylabtools tests
r11329 gui, backend = s.enable_matplotlib('qt')
Ryan May
Add tests of switching logic.
r7966 nt.assert_equal(gui, 'qt')
nt.assert_equal(s.pylab_gui_select, 'qt')
MinRK
update pylabtools tests
r11329 gui, backend = s.enable_matplotlib('gtk')
Ryan May
Add tests of switching logic.
r7966 nt.assert_equal(gui, 'qt')
nt.assert_equal(s.pylab_gui_select, 'qt')