[Zope-Checkins] CVS: Zope3/lib/python/Zope/ComponentArchitecture/tests - testAPI.py:1.1.2.13
Steve Alexander
steve@cat-box.net
Sun, 31 Mar 2002 14:53:10 -0500
Update of /cvs-repository/Zope3/lib/python/Zope/ComponentArchitecture/tests
In directory cvs.zope.org:/tmp/cvs-serv1379
Modified Files:
Tag: Zope-3x-branch
testAPI.py
Log Message:
Made the multiple adapter factories test more obvious, and added
explanatory comments.
=== Zope3/lib/python/Zope/ComponentArchitecture/tests/testAPI.py 1.1.2.12 => 1.1.2.13 ===
from Zope.ComponentArchitecture.Exceptions import ComponentLookupError
+ # if an object implements the interface you want to adapt to,
+ # getAdapter should simply return the object
self.assertEquals(getAdapter(ob, I1), ob)
+
+ # if an adapter isn't registered for the given object and interface,
+ # and you provide no default, raise ComponentLookupError...
self.assertRaises(ComponentLookupError, getAdapter, ob, I2)
+
+ # ...otherwise, you get the default
self.assertEquals(getAdapter(ob, I2, Test), Test)
provideAdapter(I1, I2, Comp)
@@ -45,14 +52,18 @@
def testMultipleAdapterFactories(self):
from Zope.ComponentArchitecture import getAdapter, provideAdapter
- provideAdapter(I1, I2, [Comp, Comp2])
+ # Basically, this represents a 2-stage adaptation. You can get
+ # from I1 to I2 by way of adapter Comp adapting Comp2
+ provideAdapter(I1, I2, [Comp2, Comp])
c = getAdapter(ob, I2)
- self.assertEquals(c.__class__, Comp2)
+ self.assertEquals(c.__class__, Comp)
self.assertEquals(c.getContext().getContext(), ob)
def testAdapterForInterfaceNone(self):
from Zope.ComponentArchitecture import getAdapter, provideAdapter
-
+
+ # providing an adapter for None says that your adapter can
+ # adapt anything to I2.
provideAdapter(None, I2, Comp)
c = getAdapter(ob, I2)
self.assertEquals(c.__class__, Comp)