##// END OF EJS Templates
Backport PR #2384: Adapt inline backend to changes in matplotlib...
Backport PR #2384: Adapt inline backend to changes in matplotlib Matplotlib recently merged https://github.com/matplotlib/matplotlib/pull/1125 that makes it simpler to use objective oriented figure creation by automatically creating the right canvas for the backend. To solve that all backends must provide a backend_xxx.FigureCanvas. This is obviosly missing from the inline backend. The change is needed to make the inline backend work with mpl's 1.2.x branch which is due to released soon. Simply setting the default canvas equal to a Agg canvas appears to work for both svg and png figures but I'm not sure weather that is the right approach. Should the canvas depend on the figure format and provide a svg canvas for a svg figure? (Note that before this change to matplotlib the canvas from a plt.figure call seams to be a agg type in all cases) Edit: I made the pull request against 0.13.1 since it would be good to have this in the stable branch for when mpl is released. Just let me know and I can rebase it against master

File last commit:

r6181:a0ad5def
r8562:7d16877a
Show More
test_completerlib.py
83 lines | 2.8 KiB | text/x-python | PythonLexer
/ IPython / core / tests / test_completerlib.py
Jörgen Stenarson
Replaced shlex_split with arg_split from _process_common....
r5688 # -*- coding: utf-8 -*-
"""Tests for completerlib.
"""
from __future__ import absolute_import
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
import os
import shutil
import sys
import tempfile
import unittest
from os.path import join
import nose.tools as nt
from nose import SkipTest
Ross Jones
Failing tests for https://github.com/ipython/ipython/issues/1107
r6148 from IPython.core.completerlib import magic_run_completer, module_completion
Jörgen Stenarson
Replaced shlex_split with arg_split from _process_common....
r5688 from IPython.utils import py3compat
Ross Jones
Failing tests for https://github.com/ipython/ipython/issues/1107
r6148 from IPython.utils.tempdir import TemporaryDirectory
Jörgen Stenarson
Replaced shlex_split with arg_split from _process_common....
r5688
class MockEvent(object):
def __init__(self, line):
self.line = line
#-----------------------------------------------------------------------------
# Test functions begin
#-----------------------------------------------------------------------------
class Test_magic_run_completer(unittest.TestCase):
def setUp(self):
self.BASETESTDIR = tempfile.mkdtemp()
MinRK
use ø instead of å in test_completerlib...
r5691 for fil in [u"aaø.py", u"a.py", u"b.py"]:
Jörgen Stenarson
Replaced shlex_split with arg_split from _process_common....
r5688 with open(join(self.BASETESTDIR, fil), "w") as sfile:
sfile.write("pass\n")
self.oldpath = os.getcwdu()
os.chdir(self.BASETESTDIR)
def tearDown(self):
os.chdir(self.oldpath)
shutil.rmtree(self.BASETESTDIR)
def test_1(self):
"""Test magic_run_completer, should match two alterntives
"""
event = MockEvent(u"%run a")
mockself = None
MinRK
use sets in test_completerlib, to be insensitive to ordering
r5692 match = set(magic_run_completer(mockself, event))
self.assertEqual(match, set([u"a.py", u"aaø.py"]))
Jörgen Stenarson
Replaced shlex_split with arg_split from _process_common....
r5688
def test_2(self):
"""Test magic_run_completer, should match one alterntive
"""
event = MockEvent(u"%run aa")
mockself = None
MinRK
use sets in test_completerlib, to be insensitive to ordering
r5692 match = set(magic_run_completer(mockself, event))
self.assertEqual(match, set([u"aaø.py"]))
Min RK
add %run open-quote completerlib test
r5690
def test_3(self):
MinRK
use sets in test_completerlib, to be insensitive to ordering
r5692 """Test magic_run_completer with unterminated " """
Min RK
add %run open-quote completerlib test
r5690 event = MockEvent(u'%run "a')
mockself = None
MinRK
use sets in test_completerlib, to be insensitive to ordering
r5692 match = set(magic_run_completer(mockself, event))
self.assertEqual(match, set([u"a.py", u"aaø.py"]))
Min RK
add %run open-quote completerlib test
r5690
Ross Jones
Failing tests for https://github.com/ipython/ipython/issues/1107
r6148 def test_import_invalid_module(self):
"""Testing of issue https://github.com/ipython/ipython/issues/1107"""
invalid_module_names = set(['foo-bar', 'foo:bar', '10foo'])
Thomas Kluyver
Test that valid local module names are found for import completions.
r6181 valid_module_names = set(['foobar'])
Ross Jones
Failing tests for https://github.com/ipython/ipython/issues/1107
r6148 with TemporaryDirectory() as tmpdir:
sys.path.insert( 0, tmpdir )
Thomas Kluyver
Test that valid local module names are found for import completions.
r6181 for name in invalid_module_names | valid_module_names:
Ross Jones
Failing tests for https://github.com/ipython/ipython/issues/1107
r6148 filename = os.path.join(tmpdir, name + '.py')
open(filename, 'w').close()
s = set( module_completion('import foo') )
Ross Jones
Implemented fix for https://github.com/ipython/ipython/issues/1107 by checking that the module list only returns importable modules.
r6150 intersection = s.intersection(invalid_module_names)
self.assertFalse(intersection, intersection)
Thomas Kluyver
Test that valid local module names are found for import completions.
r6181
assert valid_module_names.issubset(s), valid_module_names.intersection(s)