##// END OF EJS Templates
Merge pull request #3734 from jdfreder/file_subdir...
Merge pull request #3734 from jdfreder/file_subdir Nbconvert: Export extracted files into `nbname_files` subdirectory Default build directory changed to . Files extracted from notebook now are placed into a ./notebook_files/ directory by default Spaces added between # symbols and comments It may be best to look at the diffs of the individual commits... The addition of spaces in the comments makes the overall diff hard to read.

File last commit:

r11124:9567c77a
r11642:321025c8 merge
Show More
test_completerlib.py
79 lines | 2.7 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
Ross Jones
Failing tests for https://github.com/ipython/ipython/issues/1107
r6148 from IPython.core.completerlib import magic_run_completer, module_completion
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)