##// END OF EJS Templates
Fix tab-completion for magics, other completion cleanup and fixes....
Fix tab-completion for magics, other completion cleanup and fixes. Mostly simplifying the code and updating it, no major functionality changes other than fixing magic completion, which had broken in the 0.11 refactor. Also added a small test file for completion-specific tests.

File last commit:

r503:b114b8cd
r2365:10038790
Show More
test_wildcard.py
99 lines | 2.9 KiB | text/x-python | PythonLexer
# -*- coding: UTF-8 -*-
import sys, unittest
sys.path.append ('..')
from IPython import wildcard
class obj_t(object):
pass
root=obj_t()
l=["arna","abel","ABEL","active","bob","bark","abbot"]
q=["kate","loop","arne","vito","lucifer","koppel"]
for x in l:
o=obj_t()
setattr(root,x,o)
for y in q:
p=obj_t()
setattr(o,y,p)
root._apan=obj_t()
root._apan.a=10
root._apan._a=20
root._apan.__a=20
root.__anka=obj_t()
root.__anka.a=10
root.__anka._a=20
root.__anka.__a=20
root._APAN=obj_t()
root._APAN.a=10
root._APAN._a=20
root._APAN.__a=20
root.__ANKA=obj_t()
root.__ANKA.a=10
root.__ANKA._a=20
root.__ANKA.__a=20
class Tests (unittest.TestCase):
def test_case(self):
ns=root.__dict__
tests=[
("a*", ["abbot","abel","active","arna",]),
("?b*.?o*",["abbot.koppel","abbot.loop","abel.koppel","abel.loop",]),
("_a*", []),
("_*anka", ["__anka",]),
("_*a*", ["__anka",]),
]
for pat,res in tests:
res.sort()
a=wildcard.list_namespace(ns,"all",pat,ignore_case=False,show_all=False).keys()
a.sort()
self.assertEqual(a,res)
def test_case_showall(self):
ns=root.__dict__
tests=[
("a*", ["abbot","abel","active","arna",]),
("?b*.?o*",["abbot.koppel","abbot.loop","abel.koppel","abel.loop",]),
("_a*", ["_apan"]),
("_*anka", ["__anka",]),
("_*a*", ["__anka","_apan",]),
]
for pat,res in tests:
res.sort()
a=wildcard.list_namespace(ns,"all",pat,ignore_case=False,show_all=True).keys()
a.sort()
self.assertEqual(a,res)
def test_nocase(self):
ns=root.__dict__
tests=[
("a*", ["abbot","abel","ABEL","active","arna",]),
("?b*.?o*",["abbot.koppel","abbot.loop","abel.koppel","abel.loop","ABEL.koppel","ABEL.loop",]),
("_a*", []),
("_*anka", ["__anka","__ANKA",]),
("_*a*", ["__anka","__ANKA",]),
]
for pat,res in tests:
res.sort()
a=wildcard.list_namespace(ns,"all",pat,ignore_case=True,show_all=False).keys()
a.sort()
self.assertEqual(a,res)
def test_nocase_showall(self):
ns=root.__dict__
tests=[
("a*", ["abbot","abel","ABEL","active","arna",]),
("?b*.?o*",["abbot.koppel","abbot.loop","abel.koppel","abel.loop","ABEL.koppel","ABEL.loop",]),
("_a*", ["_apan","_APAN"]),
("_*anka", ["__anka","__ANKA",]),
("_*a*", ["__anka","__ANKA","_apan","_APAN"]),
]
for pat,res in tests:
res.sort()
a=wildcard.list_namespace(ns,"all",pat,ignore_case=True,show_all=True).keys()
a.sort()
self.assertEqual(a,res)
if __name__ == '__main__':
unittest.main()