=== modified file 'capturemock/pythonclient.py' --- capturemock/pythonclient.py 2013-12-10 20:09:34 +0000 +++ capturemock/pythonclient.py 2013-12-11 07:14:39 +0000 @@ -67,6 +67,7 @@ if "MRO" in str(e): self.defineClassLocally(classDefStr.replace("InstanceProxy, ", "")) else: + print("*** TypeError while trying to exec classDefStr = %r" % (classDefStr,)) raise def __getitem__(self, name): @@ -118,6 +119,15 @@ metaClass = type(proxyTargetClass) if metaClass not in [ type, types.ClassType ]: metaClassName = self.captureMockNameFinder.makeMetaClass(metaClass) + elif '(' in classDesc: + startIdx = classDesc.index('(') + 1 + endIdx = classDesc.index(')') + subclassDesc = classDesc[startIdx:endIdx] + modName, subclassName = subclassDesc.split('.') + mod = __import__(modName) + subclass = getattr(mod, subclassName) + metaClass = type(subclass) + metaClassName = self.captureMockNameFinder.makeMetaClass(metaClass) return self.captureMockNameFinder.makeClass(classDesc, metaClassName) def captureMockCreateClassProxy(self, proxyName, proxyTarget, classDesc):