##// END OF EJS Templates
Add failing test for gh-3459
Thomas Kluyver -
Show More
@@ -15,6 +15,8 b' import tempfile'
15 15 import unittest
16 16 from os.path import join
17 17
18 import nose.tools as nt
19
18 20 from IPython.core.completerlib import magic_run_completer, module_completion
19 21 from IPython.utils import py3compat
20 22 from IPython.utils.tempdir import TemporaryDirectory
@@ -31,7 +33,7 b' class MockEvent(object):'
31 33 class Test_magic_run_completer(unittest.TestCase):
32 34 def setUp(self):
33 35 self.BASETESTDIR = tempfile.mkdtemp()
34 for fil in [u"aao.py", u"a.py", u"b.py"]:
36 for fil in [u"aao.py", u"a.py", u"b.py", u"aao.txt"]:
35 37 with open(join(self.BASETESTDIR, fil), "w") as sfile:
36 38 sfile.write("pass\n")
37 39 self.oldpath = py3compat.getcwd()
@@ -64,21 +66,13 b' class Test_magic_run_completer(unittest.TestCase):'
64 66 match = set(magic_run_completer(mockself, event))
65 67 self.assertEqual(match, set([u"a.py", u"aao.py"]))
66 68
67 def test_import_invalid_module(self):
68 """Testing of issue https://github.com/ipython/ipython/issues/1107"""
69 invalid_module_names = set(['foo-bar', 'foo:bar', '10foo'])
70 valid_module_names = set(['foobar'])
71 with TemporaryDirectory() as tmpdir:
72 sys.path.insert( 0, tmpdir )
73 for name in invalid_module_names | valid_module_names:
74 filename = os.path.join(tmpdir, name + '.py')
75 open(filename, 'w').close()
76
77 s = set( module_completion('import foo') )
78 intersection = s.intersection(invalid_module_names)
79 self.assertFalse(intersection, intersection)
80
81 assert valid_module_names.issubset(s), valid_module_names.intersection(s)
69 def test_completion_in_dir(self):
70 # Github issue #3459
71 event = MockEvent(u'%run a.py {}'.format(join(self.BASETESTDIR, 'a')))
72 print(repr(event.line))
73 match = set(magic_run_completer(None, event))
74 self.assertEqual(match,
75 {join(self.BASETESTDIR, f) for f in (u'a.py', u'aao.py', u'aao.txt')})
82 76
83 77 class Test_magic_run_completer_nonascii(unittest.TestCase):
84 78 @onlyif_unicode_paths
@@ -119,3 +113,21 b' class Test_magic_run_completer_nonascii(unittest.TestCase):'
119 113 mockself = None
120 114 match = set(magic_run_completer(mockself, event))
121 115 self.assertEqual(match, set([u"a.py", u"aaø.py"]))
116
117 # module_completer:
118
119 def test_import_invalid_module():
120 """Testing of issue https://github.com/ipython/ipython/issues/1107"""
121 invalid_module_names = set(['foo-bar', 'foo:bar', '10foo'])
122 valid_module_names = set(['foobar'])
123 with TemporaryDirectory() as tmpdir:
124 sys.path.insert( 0, tmpdir )
125 for name in invalid_module_names | valid_module_names:
126 filename = os.path.join(tmpdir, name + '.py')
127 open(filename, 'w').close()
128
129 s = set( module_completion('import foo') )
130 intersection = s.intersection(invalid_module_names)
131 nt.assert_equal(intersection, set())
132
133 assert valid_module_names.issubset(s), valid_module_names.intersection(s)
General Comments 0
You need to be logged in to leave comments. Login now