def test_not_available(self): # Use a non-opened poll poll_uid = IUUID(self.p1) logout() r = self.renderer(assignment=voteportlet.Assignment(header='Polls', poll=poll_uid)) self.assertEqual(False, r.available)
def test_available_anonymous(self): # Use a opened poll poll_uid = IUUID(self.p3) r = self.renderer(assignment=voteportlet.Assignment(header='Polls', poll=poll_uid)) logout() self.assertEqual(True, r.available)
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 test_all_polls_closed_dont_show_closed(self): wt = self.wt setRoles(self.portal, TEST_USER_ID, ['Reviewer']) wt.doActionFor(self.p2, 'close') wt.doActionFor(self.p3, 'close') setRoles(self.portal, TEST_USER_ID, ['Manager']) r = self.renderer(assignment=voteportlet.Assignment( header='Polls', poll='latest', show_closed=False)) self.assertEqual(False, r.available)
def test_respect_navigation_root(self): setRoles(self.portal, TEST_USER_ID, ['Manager']) # Rendering the portlet on the site root will give us an existing # poll, created during the test setup r = self.renderer(context=self.portal, assignment=voteportlet.Assignment(poll='latest')) poll = r.poll() self.assertIsNotNone(poll) # Create a subsite (i.e a folder marked with INavigationRoot) subsite = api.content.create(self.portal, 'Folder', 'subsite-folder') alsoProvides(subsite, INavigationRoot) # If we render the portlet on this folder then we should not see # any polls, since it's a subsite without any polls. r = self.renderer(context=subsite, assignment=voteportlet.Assignment(poll='latest')) poll = r.poll() self.assertIsNone(poll) # Create a poll inside the subsite and check if it will be retrieved # by the portlet new_poll = api.content.create(container=subsite, type='collective.polls.poll', id='poll-in-subsite-folder', title='Poll in Subsite Folder') api.content.transition(new_poll, 'open') new_poll.options = [ { 'option_id': 0, 'description': 'Option 1' }, { 'option_id': 1, 'description': 'Option 2' }, ] r = self.renderer(context=subsite, assignment=voteportlet.Assignment(poll='latest')) poll = r.poll() self.assertIsNotNone(poll) self.assertEqual(poll.getId(), new_poll.getId())
def test_renderer(self): context = self.folder request = self.folder.REQUEST view = self.folder.restrictedTraverse('@@plone') manager = getUtility(IPortletManager, name='plone.leftcolumn', context=self.portal) assignment = voteportlet.Assignment(header='Polls', poll='latest') renderer = getMultiAdapter( (context, request, view, manager, assignment), IPortletRenderer) self.assertTrue(isinstance(renderer, voteportlet.Renderer))
def test_interfaces(self): portlet = voteportlet.Assignment(header='Polls', poll='latest') self.assertTrue(IPortletAssignment.providedBy(portlet)) self.assertTrue(IPortletDataProvider.providedBy(portlet.data))
def test_options(self): r = self.renderer(assignment=voteportlet.Assignment(header='Polls', poll='latest')) self.assertEqual(3, len(r.poll().options))