| | """Some tests for the wildcard utilities.""" |
| |
|
| | |
| | |
| | |
| | |
| | import unittest |
| |
|
| | |
| | from IPython.utils 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=sorted(wildcard.list_namespace(ns,"all",pat,ignore_case=False, |
| | show_all=False).keys()) |
| | 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=sorted(wildcard.list_namespace(ns,"all",pat,ignore_case=False, |
| | show_all=True).keys()) |
| | 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=sorted(wildcard.list_namespace(ns,"all",pat,ignore_case=True, |
| | show_all=False).keys()) |
| | 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=sorted(wildcard.list_namespace(ns,"all",pat,ignore_case=True, |
| | show_all=True).keys()) |
| | a.sort() |
| | self.assertEqual(a,res) |
| | |
| | def test_dict_attributes(self): |
| | """Dictionaries should be indexed by attributes, not by keys. This was |
| | causing Github issue 129.""" |
| | ns = {"az":{"king":55}, "pq":{1:0}} |
| | tests = [ |
| | ("a*", ["az"]), |
| | ("az.k*", ["az.keys"]), |
| | ("pq.k*", ["pq.keys"]) |
| | ] |
| | for pat, res in tests: |
| | res.sort() |
| | a = sorted(wildcard.list_namespace(ns, "all", pat, ignore_case=False, |
| | show_all=True).keys()) |
| | self.assertEqual(a, res) |
| | |
| | def test_dict_dir(self): |
| | class A(object): |
| | def __init__(self): |
| | self.a = 1 |
| | self.b = 2 |
| | def __getattribute__(self, name): |
| | if name=="a": |
| | raise AttributeError |
| | return object.__getattribute__(self, name) |
| | |
| | a = A() |
| | adict = wildcard.dict_dir(a) |
| | assert "a" not in adict |
| | self.assertEqual(adict["b"], 2) |
| |
|