[Zope3-dev] calling interface returns object, calling queryAdapter returns None?

Chris Withers chris at simplistix.co.uk
Wed Jan 24 13:34:42 EST 2007


Hot on the heels of my multi-adapter problem:

http://mail.zope.org/pipermail/zope3-dev/2007-January/021600.html

...which I'm still waiting for guidance on, I now find that queryAdapter 
and calling an interface behave unexpectedly differently in the case 
where an object directly implements an interface:

 >>> from zope.interface import Interface,implements
 >>> class ITest(Interface): pass
...
 >>> class Test:
...   implements(ITest)
...
 >>> t = Test()
 >>> ITest(t)
<__main__.Test instance at 0x01C6E300>
 >>> from zope.component import queryAdapter
 >>> queryAdapter(t,ITest)
 >>>

How come calling the interface returns t but queryAdapter returns None?

Should I log this and my previous multi-adapter example as bugs in the 
collector?

cheers,

Chris

-- 
Simplistix - Content Management, Zope & Python Consulting
            - http://www.simplistix.co.uk


More information about the Zope3-dev mailing list