|
|
# -*- 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()
|