Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
    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))
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
    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())
Ejemplo n.º 6
0
    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))
Ejemplo n.º 7
0
 def test_interfaces(self):
     portlet = voteportlet.Assignment(header='Polls',
                                      poll='latest')
     self.assertTrue(IPortletAssignment.providedBy(portlet))
     self.assertTrue(IPortletDataProvider.providedBy(portlet.data))
Ejemplo n.º 8
0
 def test_options(self):
     r = self.renderer(assignment=voteportlet.Assignment(header='Polls',
                                                         poll='latest'))
     self.assertEqual(3, len(r.poll().options))