Changeset 2018 in products
- Timestamp:
- Mar 26, 2010 4:18:38 PM (14 years ago)
- Location:
- quintagroup.canonicalpath/trunk/quintagroup/canonicalpath
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
quintagroup.canonicalpath/trunk/quintagroup/canonicalpath/catalog.py
r1928 r2018 1 1 from zope.interface import Interface 2 2 from zope.component import queryAdapter 3 from plone.indexer.decorator import indexer4 3 4 #for compatibility with older plone versions 5 try: 6 from plone.indexer.decorator import indexer 7 IS_NEW = True 8 except: 9 IS_NEW = False 10 class IDummyInterface:pass 11 class indexer: 12 13 def __init__(self, *interfaces): 14 self.interfaces = IDummyInterface, 15 16 def __call__(self, callable): 17 callable = lambda *args, **kw:None 18 callable.__component_adapts__ = self.interfaces 19 callable.__implemented__ = Interface 20 return callable 21 5 22 from interfaces import ICanonicalPath 6 23 from interfaces import ICanonicalLink … … 23 40 return adapter.canonical_link 24 41 return None 42 43 #for compatibility with older plone versions 44 if not IS_NEW: 45 from Products.CMFPlone.CatalogTool import registerIndexableAttribute 46 map(registerIndexableAttribute, ('canonical_path', 'canonical_link'), 47 (canonical_path, canonical_link)) -
quintagroup.canonicalpath/trunk/quintagroup/canonicalpath/tests.py
r1934 r2018 3 3 from zope.testing import doctestunit 4 4 from zope.component import testing 5 from zope.component import queryAdapter, queryMultiAdapter 5 from zope.component import queryAdapter, queryMultiAdapter, getMultiAdapter 6 6 from zope.schema.interfaces import InvalidValue 7 from plone.indexer.interfaces import IIndexableObject 7 8 #for compatibility with older plone versions 9 try: 10 from plone.indexer.interfaces import IIndexableObject 11 IS_NEW = True 12 except: 13 from plone.app.content.interfaces import IIndexableObjectWrapper \ 14 as _old_IIndexableObjectWrapper 15 IS_NEW = False 16 17 8 18 from Testing import ZopeTestCase as ztc 9 19 … … 40 50 self.logout() 41 51 52 def get_indexable_wrapper(self, obj): 53 if IS_NEW: 54 wrapper = None 55 if not IIndexableObject.providedBy(obj): 56 wrapper = queryMultiAdapter((obj, self.catalog), IIndexableObject) 57 else: 58 wf = getattr(self.portal, 'portal_workflow', None) 59 if wf is not None: 60 vars = wf.getCatalogVariablesFor(obj) 61 else: 62 vars = {} 63 wrapper = getMultiAdapter((obj, self.portal), _old_IIndexableObjectWrapper) 64 wrapper.update(vars) 65 66 return wrapper and wrapper or obj 67 42 68 def testForPortal(self): 43 wrapper = queryMultiAdapter((self.portal, self.catalog), IIndexableObject)69 wrapper = self.get_indexable_wrapper(self.portal) 44 70 self.assertFalse(wrapper is None, "No indexer registered for portal object") 45 71 46 72 def testForAT(self): 47 wrapper = queryMultiAdapter((self.my_doc, self.catalog), IIndexableObject)73 wrapper = self.get_indexable_wrapper(self.my_doc) 48 74 self.assertFalse(wrapper is None, "No indexer registered for document object") 49 75 50 76 def testCanonicalPathForPortal(self): 51 wrapper = queryMultiAdapter((self.portal, self.catalog), IIndexableObject)77 wrapper = self.get_indexable_wrapper(self.portal) 52 78 self.assertTrue(hasattr(wrapper, 'canonical_path'), 53 79 "'canonical_path' attribute not accessible with indexer wrapper for portal object") 54 80 55 81 def testCanonicalPathForAT(self): 56 wrapper = queryMultiAdapter((self.my_doc, self.catalog), IIndexableObject)82 wrapper = self.get_indexable_wrapper(self.my_doc) 57 83 self.assertTrue(hasattr(wrapper, 'canonical_path'), 58 84 "'canonical_path' attribute not accessible with indexer wrapper for Document object") 59 85 60 86 def testCanonicalLinkForPortal(self): 61 wrapper = queryMultiAdapter((self.portal, self.catalog), IIndexableObject)87 wrapper = self.get_indexable_wrapper(self.portal) 62 88 self.assertTrue(hasattr(wrapper, 'canonical_link'), 63 89 "'canonical_link' attribute not accessible with indexer wrapper for portal object") 64 90 65 91 def testCanonicalLinkForAT(self): 66 wrapper = queryMultiAdapter((self.my_doc, self.catalog), IIndexableObject)92 wrapper = self.get_indexable_wrapper(self.my_doc) 67 93 self.assertTrue(hasattr(wrapper, 'canonical_link'), 68 94 "'canonical_link' attribute not accessible with indexer wrapper for Document object")
Note: See TracChangeset
for help on using the changeset viewer.