def testInvokeEditView(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = portlet_tasks.Assignment() editview = queryMultiAdapter( (mapping['foo'], request), name='edit', default=None) self.failUnless(isinstance(mapping.values()[0], portlet_tasks.Assignment))
def testInvokeEditView(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = portlet_tasks.Assignment() editview = queryMultiAdapter((mapping['foo'], request), name='edit', default=None) self.failUnless( isinstance(list(mapping.values())[0], portlet_tasks.Assignment))
def test_invoke_edit_form(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = news.Assignment(count=5) editview = getMultiAdapter((mapping['foo'], request), name='edit') editview.update() editview.applyChanges(data={'count': 6, EXTENDER_PREFIX+'.css_class': 'my-class'}) portlet_assignment = mapping.values()[0] settings = IPortletAssignmentSettings(portlet_assignment) self.assertEqual(portlet_assignment.count, 6) # We have not extended our storage adapter, so nothing gets saved: self.assertIsNone(settings.get('css_class', None)) # Register our schemaextender gsm = getGlobalSiteManager() gsm.registerAdapter(PortletCssClassAdapter, (IPortletAssignment,)) gsm.registerAdapter(PortletCssClassFormExtender, (Interface, IDefaultBrowserLayer, IPortletEditForm), IFormExtender, 'portletcssclass.extender') mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = news.Assignment(count=5) editview = getMultiAdapter((mapping['foo'], request), name='edit') editview.update() editview.applyChanges(data={'count': 6, EXTENDER_PREFIX+'.css_class': 'my-class'}) portlet_assignment = mapping.values()[0] settings = IPortletAssignmentSettings(portlet_assignment) gsm.unregisterAdapter(PortletCssClassFormExtender, (Interface, IDefaultBrowserLayer, IPortletEditForm), IFormExtender, 'portletcssclass.extender') gsm.unregisterAdapter(PortletCssClassAdapter, (IPortletAssignment,)) self.assertEqual(portlet_assignment.count, 6) # The prefix is used for the form field, not for the stored data: self.assertEqual(settings.get('css_class'), 'my-class')
def test_invoke_edit_view(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = shibbolethloginportlet.Assignment() editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, shibbolethloginportlet.EditForm))
def testInvokeEditView(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = classic.Assignment(template='portlet_recent', macro='portlet') editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, classic.EditForm))
def afterSetUp(self): self.manager = getUtility(IPortletManager, name=u'plone.leftcolumn') self.cat = self.manager[USER_CATEGORY] self.cat[user_name] = PortletAssignmentMapping( manager=u'plone.leftcolumn', category=USER_CATEGORY, name=user_name)
def test_portlet_collection(self): query = [{ 'i': 'portal_type', 'o': 'plone.app.querystring.operation.selection.is', 'v': ['Document'] }] # add a few documents for i in range(6): self.folder.invokeFactory('Document', 'document_%s' % i) getattr(self.folder, 'document_%s' % i).reindexObject() collection = getattr(self.folder, 'collection') collection.setQuery(query) # the documents are returned by the collection collection_num_items = len(self.folder.collection.queryCatalog()) # We better have some documents - we should have 8 self.failUnless(collection_num_items >= 8) mapping = PortletAssignmentMapping() mapping['foo'] = carousel.Assignment( header=u"Test carousel", target_collection='/Members/test_user_1_/collection') r = self.renderer(context=None, request=None, view=None, manager=None, assignment=mapping['foo']) # sanity check self.assertEqual(r.collection().id, 'collection') # we want the portlet to return us the same results as the collection self.assertEquals(collection_num_items, len(r.results()))
def test_invoke_edit_view(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = ngcollection.Assignment(header=u"title") editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, ngcollection.EditForm))
def testSimpleQuery(self): # set up our collection to search for Folders crit = self.folder.collection.addCriterion('portal_type', 'ATSimpleStringCriterion') crit.setValue('Folder') # add a few folders for i in range(6): self.folder.invokeFactory('Folder', 'folder_%s' % i) getattr(self.folder, 'folder_%s' % i).reindexObject() # the folders are returned by the topic collection_num_items = len(self.folder.collection.queryCatalog()) # We better have some folders self.failUnless(collection_num_items >= 6) mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = ngcollection.Assignment( header=u"title", target_collection='/Members/test_user_1_/collection') collectionrenderer = self.renderer(context=None, request=None, view=None, manager=None, assignment=mapping['foo']) # we want the portlet to return us the same results as the collection self.assertEquals(collection_num_items, len(collectionrenderer.results()))
def test_show_more_label(self): # set up our portlet renderer mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = ngcollection.Assignment( header=u"title", random=True, target_collection='/Members/test_user_1_/collection') collectionrenderer = self.renderer(context=None, request=None, view=None, manager=None, assignment=mapping['foo']) self.assertEquals(collectionrenderer.show_more_label(), 'More…') mapping['buz'] = ngcollection.Assignment( header=u"title", random=True, target_collection='/Members/test_user_1_/collection', show_more_label=u"View more") collectionrenderer = self.renderer(context=None, request=None, view=None, manager=None, assignment=mapping['buz']) self.assertEquals(collectionrenderer.show_more_label(), 'View more')
def test_invoke_edit_view(self): mapping = PortletAssignmentMapping() request = self.portal.REQUEST mapping['foo'] = tagcloudportlet.Assignment() editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, tagcloudportlet.EditForm))
def test_invoke_editview(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = voteportlet.Assignment(header='Polls', poll='latest') editview = getMultiAdapter((mapping['foo'], request), name='edit') self.assertTrue(isinstance(editview, voteportlet.EditForm))
def testInvokeEditView(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = richportlet.Assignment(title=u"rich portlet title", text="rich portlet text") editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, richportlet.EditForm))
def testInvokeEditView(self): mapping = PortletAssignmentMapping() request = self.portal.REQUEST mapping['foo'] = mailinglijst.Assignment(name="foo") editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, mailinglijst.EditForm))
def test_invoke_edit_view(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = practical_solutions.Assignment(["agriculture"]) editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, practical_solutions.EditForm))
def test_invoke_edit_view(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = producentregisteringhelp.Assignment() editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, producentregisteringhelp.EditForm))
def testInvokeEditView(self): mapping = PortletAssignmentMapping() request = self.portal.REQUEST mapping['foo'] = static.Assignment(header=u"title", text="text") editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, static.EditForm))
def testInvokeEditView(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = login.Assignment() editview = queryMultiAdapter((mapping['foo'], request), name='edit', default=None) self.assertTrue(editview is None)
def test_invoke_edit_view(self): mapping = PortletAssignmentMapping() mapping['test'] = weather.Assignment() editview = getMultiAdapter((mapping['test'], self.request), name='edit') self.assertTrue(isinstance(editview, weather.EditForm))
def testInvokeEditView(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = navigation.Assignment() editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, navigation.EditForm))
def testInvokeEditView(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = news.Assignment(count=5) editview = getMultiAdapter((mapping['foo'], request), name='edit') self.assertTrue(isinstance(editview, news.EditForm))
def test_invoke_edit_view(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = librarianworkplans.Assignment() editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, librarianworkplans.EditForm))
def testSimpleQuery(self): # set up our collection to search for Folders self.folder.collection.query = [{ 'i': 'portal_type', 'o': 'plone.app.querystring.operation.string.is', 'v': 'Folder', }] # add a few folders for i in range(6): self.folder.invokeFactory('Folder', 'folder_%s' % i) getattr(self.folder, 'folder_%s' % i).reindexObject() # the folders are returned by the topic collection_num_items = len(self.folder.collection.results()) # We better have some folders self.assertTrue(collection_num_items >= 6) mapping = PortletAssignmentMapping() mapping['foo'] = collection.Assignment( header=u"title", uid=self.folder.collection.UID(), exclude_context=False, ) collectionrenderer = self.renderer(context=None, request=None, view=None, manager=None, assignment=mapping['foo']) # we want the portlet to return us the same results as the collection self.assertEqual(collection_num_items, len(collectionrenderer.results()))
def add_quickupload_portlet(portal): # Do not set up quickupload portlet in profile's portlet.xml. # The Form provided there does not work without a actual request. # Thus we avoid to setup the portlet in tests. # Note to future me: If you ever wanna reliable produce a segmentation fault, # just remove the condition :-D return if portal.REQUEST.URL not in ['http://foo', 'http://nohost']: manager = getUtility(IPortletManager, name='plone.rightcolumn') category = manager.get(CONTENT_TYPE_CATEGORY) portal_type = 'ftw.noticeboard.Notice' mapping = category.get(portal_type, None) if mapping is None: mapping = mapping[portal_type] = PortletAssignmentMapping( manager=manager, category=CONTENT_TYPE_CATEGORY, name=portal_type) if 'quickupload' not in mapping: portlet = Assignment( header='Upload', upload_portal_type='ftw.noticeboard.NoticeImage', upload_media_type='image' ) mapping['quickupload'] = portlet
def test_invoke_edit_view(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = actions.Assignment(ptitle=u'actions', category=u'document', show_icons=True) editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, actions.EditForm)) return
def testInvokeEditView(self): for module in [p['module'] for p in self.portlets]: mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = module.Assignment() editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, module.EditForm))
def test_invoke_edit_view(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = osha_items.Assignment() editview = component.getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, osha_items.EditForm))
def testNameChooser(self): mapping = PortletAssignmentMapping() chooser = INameChooser(mapping) c = classic.Assignment() mapping[chooser.chooseName(None, c)] = c self.failUnless(c.__name__) d = classic.Assignment() self.failIfEqual(chooser.chooseName(None, d), c.__name__)
def testNameChooser(self): mapping = PortletAssignmentMapping() chooser = INameChooser(mapping) c = classic.Assignment() mapping[chooser.chooseName(None, c)] = c self.assertTrue(c.__name__) d = classic.Assignment() self.assertFalse(chooser.chooseName(None, d) == c.__name__)
def test_invoke_edit_view(self): # NOTE: This test can be removed if the portlet has no edit form mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = mybookmarksportlet.Assignment() editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, mybookmarksportlet.EditForm))
def getAssignmentsForManager(self, manager): key = self.request['key'] column = getUtility(IPortletManager, name=manager.__name__) category = column[GROUP_CATEGORY] mapping = category.get(key, None) if mapping is None: mapping = category[key] = PortletAssignmentMapping( manager=manager.__name__, category=GROUP_CATEGORY, name=key) return mapping.values()
def testInvokeEditView(self): mapping = PortletAssignmentMapping() mapping['foo'] = portlet_events.Assignment(count=5) editview = getMultiAdapter((mapping['foo'], self.request), name='edit') if PLONE5: self.assertTrue(isinstance(editview, portlet_events.EditForm)) else: self.assertTrue(isinstance(editview, bbb_portlet_events.EditForm))
def testInvokeEditView(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = portlet_mod.Assignment() editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, portlet_mod.EditForm)) editview.setUpWidgets(True) editview.handle_edit_action.success(dict( title="Test Title", feeds="Test Feeds", items_shown=16, cache_timeout="32")) assignment = mapping.values()[0] self.failUnless(isinstance(assignment, portlet_mod.Assignment)) self.assertEqual(assignment.title, "Test Title") self.assertEqual(assignment.feeds, "Test Feeds") self.assertEqual(assignment.items_shown, 16) self.assertEqual(assignment.cache_timeout, "32")
def localPortletAssignmentMappingAdapter(context, manager): """Zope 2 version of the localPortletAssignmentMappingAdapter factory. """ annotations = IAnnotations(context) local = annotations.get(CONTEXT_ASSIGNMENT_KEY, {}) portlets = local.get(manager.__name__, None) if portlets is None: # Return new mapping without storing it yet, # but pass along the context so it can be stored # if an assignment is added. portlets = PortletAssignmentMapping( manager=manager.__name__, category=CONTEXT_CATEGORY, context=context) # XXX: For graceful migration if not getattr(portlets, '__manager__', ''): portlets.__manager__ = manager.__name__ if not getattr(portlets, '__category__', ''): portlets.__category__ = CONTEXT_CATEGORY return portlets