Changeset 3555 in products for quintagroup.portlet.collection/trunk/quintagroup/portlet/collection/tests/test_portlet.py
- Timestamp:
- Sep 14, 2012 9:59:30 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
quintagroup.portlet.collection/trunk/quintagroup/portlet/collection/tests/test_portlet.py
r3554 r3555 16 16 from Products.CMFCore.utils import getToolByName 17 17 18 18 19 class TestQPortletCollection(TestCase): 19 20 def afterSetUp(self): … … 21 22 22 23 def testPortletTypeRegistered(self): 23 portlet = getUtility(IPortletType, name='quintagroup.portlet.collection.Collection') 24 self.assertEquals(portlet.addview, 'quintagroup.portlet.collection.Collection') 24 portlet = getUtility( 25 IPortletType, name='quintagroup.portlet.collection.Collection') 26 self.assertEquals( 27 portlet.addview, 'quintagroup.portlet.collection.Collection') 25 28 26 29 def testInterfaces(self): … … 30 33 31 34 def testInvokeAddview(self): 32 portlet = getUtility(IPortletType, name='quintagroup.portlet.collection.Collection') 33 mapping = self.portal.restrictedTraverse('++contextportlets++plone.leftcolumn') 35 portlet = getUtility( 36 IPortletType, name='quintagroup.portlet.collection.Collection') 37 mapping = self.portal.restrictedTraverse( 38 '++contextportlets++plone.leftcolumn') 34 39 for m in mapping.keys(): 35 40 del mapping[m] 36 41 addview = mapping.restrictedTraverse('+/' + portlet.addview) 37 42 38 addview.createAndAdd(data={'header' 43 addview.createAndAdd(data={'header': u"test title"}) 39 44 40 45 self.assertEquals(len(mapping), 1) … … 53 58 request = self.folder.REQUEST 54 59 view = self.folder.restrictedTraverse('@@plone') 55 manager = getUtility(IPortletManager, name='plone.rightcolumn', context=self.portal) 60 manager = getUtility( 61 IPortletManager, name='plone.rightcolumn', context=self.portal) 56 62 assignment = collection.Assignment(header=u"title") 57 63 58 renderer = getMultiAdapter((context, request, view, manager, assignment), IPortletRenderer) 64 renderer = getMultiAdapter( 65 (context, request, view, manager, assignment), IPortletRenderer) 59 66 self.failUnless(isinstance(renderer, collection.Renderer)) 67 60 68 61 69 class TestQPortletCollectionRenderer(TestCase): … … 64 72 self.setRoles(('Manager',)) 65 73 self.pages = self._createType(self.folder, 'Topic', 'pages') 66 crit = self.folder.pages.addCriterion('portal_type', 'ATSimpleStringCriterion') 74 crit = self.folder.pages.addCriterion( 75 'portal_type', 'ATSimpleStringCriterion') 67 76 crit.setValue('Document') 68 77 69 def renderer(self, context=None, request=None, view=None, manager=None, assignment=None): 78 def renderer(self, context=None, request=None, view=None, manager=None, 79 assignment=None): 70 80 context = context or self.folder 71 81 request = request or self.folder.REQUEST 72 82 view = view or self.folder.restrictedTraverse('@@plone') 73 manager = manager or getUtility(IPortletManager, name='plone.rightcolumn', context=self.portal) 83 manager = manager or getUtility( 84 IPortletManager, name='plone.rightcolumn', context=self.portal) 74 85 assignment = assignment or collection.Assignment(header=u"title") 75 86 76 return getMultiAdapter((context, request, view, manager, assignment), IPortletRenderer) 87 return getMultiAdapter((context, request, view, manager, assignment), 88 IPortletRenderer) 77 89 78 90 def _createType(self, context, portal_type, id, **kwargs): … … 92 104 Cover problem in #9184 93 105 """ 94 r = self.renderer(context=self.portal, 95 assignment=collection.Assignment(header=u"title", 96 target_collection=u"/events")) 97 r = r.__of__(self.folder) 106 r = self.renderer( 107 context=self.portal, 108 assignment=collection.Assignment(header=u"title", 109 target_collection=u"/events")) 110 r = r.__of__(self.folder) 98 111 self.assertEqual(r.collection().id, 'events') 99 112 100 113 def test_portletStyle(self): 101 114 renderer = self.renderer(context=self.portal, 102 assignment=collection.Assignment(header=u"title", 103 styling="TestClass")) 115 assignment=collection.Assignment( 116 header=u"title", 117 styling="TestClass")) 104 118 renderer = renderer.__of__(self.folder) 105 119 renderer.update() … … 110 124 page = self._createType(self.folder, 'Document', 'page') 111 125 page.update(title="Test Page", description="Test description") 126 target_collection = '/Members/test_user_1_/pages' 112 127 renderer = self.renderer(context=self.portal, 113 assignment=collection.Assignment(header=u"title", 114 item_attributes=[u'Title'], 115 target_collection='/Members/test_user_1_/pages')) 128 assignment=collection.Assignment( 129 header=u"title", 130 item_attributes=[u'Title'], 131 target_collection=target_collection)) 116 132 renderer = renderer.__of__(self.folder) 117 133 renderer.update() 118 134 self.failUnless('Test Page' in renderer.render()) 119 135 self.failUnless('Test description' not in renderer.render()) 136 120 137 121 138 class TestQPortletCollectionQuery(TestCase): … … 138 155 return obj 139 156 140 141 def renderer(self, context=None, request=None, view=None, manager=None,assignment=None):157 def renderer(self, context=None, request=None, view=None, manager=None, 158 assignment=None): 142 159 context = context or self.folder 143 160 request = request or self.folder.REQUEST 144 161 view = view or self.folder.restrictedTraverse('@@plone') 145 manager = manager or getUtility(IPortletManager, name='plone.leftcolumn', context=self.portal) 162 manager = manager or getUtility( 163 IPortletManager, name='plone.leftcolumn', context=self.portal) 146 164 assignment = assignment 147 return getMultiAdapter((context, request, view, manager, assignment), IPortletRenderer) 165 return getMultiAdapter((context, request, view, manager, assignment), 166 IPortletRenderer) 148 167 149 168 def testSimpleQuery(self): 150 169 # set up our collection to search for Folders 151 crit = self.folder.collection.addCriterion('portal_type', 'ATSimpleStringCriterion') 170 crit = self.folder.collection.addCriterion( 171 'portal_type', 'ATSimpleStringCriterion') 152 172 crit.setValue('Folder') 153 173 154 174 # add a few folders 155 175 for i in range(6): 156 self.folder.invokeFactory('Folder', 'folder_%s' %i)157 getattr(self.folder, 'folder_%s' %i).reindexObject()176 self.folder.invokeFactory('Folder', 'folder_%s' % i) 177 getattr(self.folder, 'folder_%s' % i).reindexObject() 158 178 159 179 # the folders are returned by the topic … … 163 183 164 184 mapping = PortletAssignmentMapping() 165 request = self.folder.REQUEST 166 mapping['foo'] = collection.Assignment(header=u"title", target_collection='/Members/test_user_1_/collection') 167 collectionrenderer = self.renderer(context=None, request=None, view=None, manager=None, assignment=mapping['foo']) 185 t_collection = '/Members/test_user_1_/collection' 186 mapping['foo'] = collection.Assignment(header=u"title", 187 target_collection=t_collection) 188 collectionrenderer = self.renderer(context=None, request=None, 189 view=None, manager=None, 190 assignment=mapping['foo']) 168 191 169 192 # we want the portlet to return us the same results as the collection 170 self.assertEquals(collection_num_items, len(collectionrenderer.results())) 193 self.assertEquals( 194 collection_num_items, len(collectionrenderer.results())) 171 195 172 196 def testRandomQuery(self): … … 185 209 # set up our portlet renderer 186 210 mapping = PortletAssignmentMapping() 187 request = self.folder.REQUEST211 t_collection = '/Members/test_user_1_/collection' 188 212 mapping['foo'] = collection.Assignment(header=u"title", 189 213 random=True, 190 target_collection='/Members/test_user_1_/collection') 191 collectionrenderer = self.renderer(context=None, request=None, view=None, manager=None, assignment=mapping['foo']) 214 target_collection=t_collection) 215 collectionrenderer = self.renderer(context=None, request=None, 216 view=None, manager=None, 217 assignment=mapping['foo']) 192 218 193 219 # add some folders 194 220 for i in range(6): 195 self.folder.invokeFactory('Folder', 'folder_%s' %i)196 getattr(self.folder, 'folder_%s' %i).reindexObject()221 self.folder.invokeFactory('Folder', 'folder_%s' % i) 222 getattr(self.folder, 'folder_%s' % i).reindexObject() 197 223 198 224 # collection with no criteria -- should return empty list, without error … … 204 230 global collection_was_called 205 231 collection_was_called = False 232 206 233 def mark_collection_called(**kw): 207 234 global collection_was_called … … 214 241 215 242 # collection with simple criterion -- should return 1 (random) folder 216 crit = self.folder.collection.addCriterion('portal_type', 'ATSimpleStringCriterion') 243 crit = self.folder.collection.addCriterion( 244 'portal_type', 'ATSimpleStringCriterion') 217 245 crit.setValue('Folder') 218 246 self.assertEqual(len(collectionrenderer.results()), 1) … … 220 248 221 249 # collection with multiple criteria -- should behave similarly 222 crit = self.folder.collection.addCriterion('Creator', 'ATSimpleStringCriterion') 250 crit = self.folder.collection.addCriterion( 251 'Creator', 'ATSimpleStringCriterion') 223 252 crit.setValue('test_user_1_') 224 253 collectionrenderer.results()
Note: See TracChangeset
for help on using the changeset viewer.