[Checkins] SVN: Products.CMFCore/branches/miwa-catalog-adapter/Products/CMFCore/ add fallback to using wrapper class
Miles Waller
miles at jamkit.com
Wed Mar 18 06:44:50 EDT 2009
Log message for revision 98222:
add fallback to using wrapper class
Changed:
U Products.CMFCore/branches/miwa-catalog-adapter/Products/CMFCore/CatalogTool.py
U Products.CMFCore/branches/miwa-catalog-adapter/Products/CMFCore/tests/test_CatalogTool.py
-=-
Modified: Products.CMFCore/branches/miwa-catalog-adapter/Products/CMFCore/CatalogTool.py
===================================================================
--- Products.CMFCore/branches/miwa-catalog-adapter/Products/CMFCore/CatalogTool.py 2009-03-18 10:01:08 UTC (rev 98221)
+++ Products.CMFCore/branches/miwa-catalog-adapter/Products/CMFCore/CatalogTool.py 2009-03-18 10:44:50 UTC (rev 98222)
@@ -26,6 +26,7 @@
from Products.ZCatalog.ZCatalog import ZCatalog
from zope.interface import implements
from zope.component import adapts
+from zope.component import queryMultiAdapter
from zope.interface import providedBy
from zope.interface.declarations import getObjectSpecification
from zope.interface.declarations import ObjectSpecification
@@ -257,10 +258,13 @@
# information just before cataloging.
# XXX: this method violates the rules for tools/utilities:
# it depends on a non-utility tool
- if not IIndexableObject.providedBy(obj):
- w = IIndexableObject((obj, self))
+ if IIndexableObject.providedBy(obj):
+ w = obj
else:
- w = obj
+ w = queryMultiAdapter( (obj, self), IIndexableObject )
+ if w is None:
+ # BBB
+ w = IndexableObjectWrapper(obj, self)
ZCatalog.catalog_object(self, w, uid, idxs, update_metadata,
pghandler)
Modified: Products.CMFCore/branches/miwa-catalog-adapter/Products/CMFCore/tests/test_CatalogTool.py
===================================================================
--- Products.CMFCore/branches/miwa-catalog-adapter/Products/CMFCore/tests/test_CatalogTool.py 2009-03-18 10:01:08 UTC (rev 98221)
+++ Products.CMFCore/branches/miwa-catalog-adapter/Products/CMFCore/tests/test_CatalogTool.py 2009-03-18 10:44:50 UTC (rev 98222)
@@ -500,11 +500,12 @@
def test_wrapping2(self):
# DummyContent does not implement IIndexableObject
- # no wrapper registered - should create an error
+ # no wrapper registered - should fall back to using
+ # wrapper class directly
dummy = DummyContent(catalog=1)
ctool = self._makeOne()
- self.assertRaises(TypeError, ctool.catalog_object,
- dummy, '/dummy')
+ ctool.catalog_object(dummy, '/dummy')
+ self.assertEqual(1, len(ctool._catalog.searchResults()))
def test_wrapping3(self):
# DummyContent does not implement IIndexableObject
More information about the Checkins
mailing list