179: DictProxy now has __call__() method that iterates through the values; removed __call__() method from NameSpace as it subclasses from DictProxys; DictProxy unit tests now test __call__()

This commit is contained in:
Jason Gerard DeRose 2008-08-15 05:19:02 +00:00
parent a24f2121d5
commit ab10f0843b
2 changed files with 10 additions and 8 deletions

View File

@ -192,6 +192,14 @@ class DictProxy(SetProxy):
"""
return self.__d[key]
def __call__(self):
"""
Iterates (in ascending order by key) through the values in this
container.
"""
for key in self:
yield self.__d[key]
class MagicDict(DictProxy):
"""
@ -530,14 +538,6 @@ class NameSpace(DictProxy):
setattr(self, name, member)
yield (name, member)
def __call__(self):
"""
Iterates (in ascending order by name) through the members in this
NameSpace.
"""
for key in self:
yield self[key]
def __repr__(self):
"""
Returns pseudo-valid Python expression that could be used to construct

View File

@ -192,6 +192,7 @@ class test_DictProxy(ClassChecker):
# Check initial state
assert len(proxy) == len(target)
assert list(proxy) == sorted(target)
assert list(proxy()) == [target[k] for k in sorted(target)]
assert key not in proxy
raises(KeyError, getitem, proxy, key)
@ -199,6 +200,7 @@ class test_DictProxy(ClassChecker):
target[key] = val
assert len(proxy) == len(target)
assert list(proxy) == sorted(target)
assert list(proxy()) == [target[k] for k in sorted(target)]
# Verify TypeError is raised trying to set/del via proxy
raises(TypeError, setitem, proxy, key, val)