[svn r63016] * fix setattr on apimodules

* higher timeout

--HG--
branch : trunk
This commit is contained in:
hpk 2009-03-18 00:34:59 +01:00
parent c3e5ca560a
commit 9a47f06a59
2 changed files with 12 additions and 5 deletions

View File

@ -215,8 +215,8 @@ class TestMultiChannel:
channel.send(os.getpid())
""")
queue = mc.make_receive_queue()
ch, item = queue.get(timeout=0.5)
ch2, item2 = queue.get(timeout=0.5)
ch, item = queue.get(timeout=10)
ch2, item2 = queue.get(timeout=10)
assert ch != ch2
assert ch.gateway != ch2.gateway
assert item != item2

View File

@ -165,9 +165,9 @@ def setmodule(modpath, module):
class ApiModule(ModuleType):
def __init__(self, pkg, name):
self.__map__ = {}
self.__pkg__ = pkg
self.__name__ = name
self.__map__ = {}
def __repr__(self):
return '<ApiModule %r>' % (self.__name__,)
@ -178,17 +178,24 @@ class ApiModule(ModuleType):
result = self.__pkg__._resolve(extpy)
else:
try:
extpy = self.__map__[name]
extpy = self.__map__.pop(name)
except KeyError:
__tracebackhide__ = True
raise AttributeError(name)
else:
result = self.__pkg__._resolve(extpy)
del self.__map__[name]
setattr(self, name, result)
#self._fixinspection(result, name)
return result
def __setattr__(self, name, value):
super(ApiModule, self).__setattr__(name, value)
try:
del self.__map__[name]
except KeyError:
pass
def _deprecated_fixinspection(self, result, name):
# modify some attrs to make a class appear at export level
if hasattr(result, '__module__'):