Exemplo n.º 1
0
    def test_is_responsible_or_inbox_group_user(self):
        task1 = self.stub()
        self.expect(task1.responsible).result('hugo.boss')

        plone_portal_state = self.stub()
        self.expect(plone_portal_state(ANY, ANY)).result(plone_portal_state)
        self.expect(plone_portal_state.member().id).result('hugo.boss')
        self.mock_adapter(plone_portal_state, ITask, [Interface, Interface],
                          'plone_portal_state')

        contact_info = self.mocker.mock()
        self.mock_utility(contact_info, IContactInformation, name=u"")
        with self.mocker.order():
            self.expect(
                contact_info.is_user_in_inbox_group()).result(False).count(
                    0, None)
            self.expect(
                contact_info.is_user_in_inbox_group()).result(True).count(
                    0, None)

        self.replay()

        self.assertTrue(
            TaskTransitionController(task1,
                                     {})._is_responsible_or_inbox_group_user())
        self.assertTrue(
            TaskTransitionController(task1,
                                     {})._is_responsible_or_inbox_group_user())
Exemplo n.º 2
0
    def test_is_responsible(self):
        task1 = self.mocker.mock()
        self.expect(task1.responsible).result('hugo.boss')
        task2 = self.mocker.mock()
        self.expect(task2.responsible).result('james.bond')

        plone_portal_state = self.stub()
        self.expect(plone_portal_state(ANY, ANY)).result(plone_portal_state)
        self.expect(plone_portal_state.member().id).result('james.bond')
        self.mock_adapter(plone_portal_state, ITask, [Interface, Interface],
                          'plone_portal_state')

        self.replay()

        self.assertTrue(TaskTransitionController(task2, {})._is_responsible())
        self.assertFalse(TaskTransitionController(task1, {})._is_responsible())
Exemplo n.º 3
0
    def test_is_remote_request(self):
        task1 = self.mocker.mock()
        mock_request = self.mocker.mock()
        successor_task_controller = self.stub()
        self.expect(
            successor_task_controller(ANY)).result(successor_task_controller)
        self.mock_adapter(successor_task_controller, ISuccessorTaskController,
                          [Interface])

        with self.mocker.order():
            self.expect(mock_request.get_header('X-OGDS-CID',
                                                None)).result(None)
            self.expect(mock_request.get_header('X-OGDS-CID',
                                                None)).result('TEST_CLIENT_ID')

        self.replay()
        self.assertFalse(
            TaskTransitionController(task1, mock_request)._is_remote_request())
        self.assertTrue(
            TaskTransitionController(task1, mock_request)._is_remote_request())
Exemplo n.º 4
0
    def test_has_successors(self):
        task1 = self.mocker.mock()

        successor_task_controller = self.stub()
        self.expect(
            successor_task_controller(ANY)).result(successor_task_controller)

        with self.mocker.order():
            self.expect(
                successor_task_controller.get_successors()).result(None)
            self.expect(successor_task_controller.get_successors()).result([])
            self.expect(successor_task_controller.get_successors()).result(
                [object(), object])
        self.mock_adapter(successor_task_controller, ISuccessorTaskController,
                          [Interface])

        self.replay()

        self.assertFalse(TaskTransitionController(task1, {})._has_successors())
        self.assertFalse(TaskTransitionController(task1, {})._has_successors())
        self.assertTrue(TaskTransitionController(task1, {})._has_successors())
Exemplo n.º 5
0
    def test_is_administrator(self):
        task1 = self.stub()
        mock = self.stub()
        self.mock_tool(mock, 'portal_membership')
        self.expect(mock.getAuthenticatedMember()).result(mock)

        with self.mocker.order():
            self.expect(mock.has_role('Administrator')).result(0)
            self.expect(mock.has_role('Manager')).result(0)

            self.expect(mock.has_role('Administrator')).result(0)
            self.expect(mock.has_role('Manager')).result(1)

            self.expect(mock.has_role('Administrator')).result(1)

        self.replay()

        self.assertFalse(
            TaskTransitionController(task1, {})._is_administrator())
        self.assertTrue(
            TaskTransitionController(task1, {})._is_administrator())
        self.assertTrue(
            TaskTransitionController(task1, {})._is_administrator())
Exemplo n.º 6
0
    def _create_task_controller(self):
        task1 = self.mocker.mock()
        self.expect(
            task1.absolute_url()).result('http://nohost/plone/task-1').count(
                0, None)
        self.expect(task1.getPhysicalPath()).result(['', 'plone',
                                                     'task-1']).count(0, None)

        controller = TaskTransitionController(task1, {})
        controller_mock = self.mocker.patch(controller)

        self.expect(controller_mock._is_administrator()).result(False).count(
            0, None)

        return controller, controller_mock, task1
Exemplo n.º 7
0
    def test_is_issuer(self):
        task1 = self.stub()
        self.expect(task1.issuer).result('hugo.boss')
        task2 = self.stub()
        self.expect(task2.issuer).result('james.bond')
        task3 = self.stub()
        self.expect(task3.issuer).result('inbox:client1')

        request = self.stub()

        contact_info = self.mocker.mock()
        self.mock_utility(contact_info, IContactInformation, name=u"")

        plone_portal_state = self.stub()
        self.mock_adapter(plone_portal_state, ITask, [Interface, Interface],
                          'plone_portal_state')

        with self.mocker.order():
            # check1 (direct issuer)
            self.expect(contact_info.is_inbox('hugo.boss')).result(False)
            self.expect(plone_portal_state(ANY,
                                           ANY)).result(plone_portal_state)
            self.expect(plone_portal_state.member().id).result('hugo.boss')

            # check2 (not the issuer, without including the inbox group)
            self.expect(contact_info.is_inbox('james.bond')).result(False)
            self.expect(plone_portal_state(ANY,
                                           ANY)).result(plone_portal_state)
            self.expect(plone_portal_state.member().id).result('hugo.boss')

            # check3 (not the issuer, not in the issuer group)
            self.expect(contact_info.is_inbox('james.bond')).result(False)
            self.expect(plone_portal_state(ANY,
                                           ANY)).result(plone_portal_state)
            self.expect(plone_portal_state.member().id).result('hugo.boss')
            self.expect(request.get_header('X-OGDS-CID', None)).result(False)
            self.expect(contact_info.is_user_in_inbox_group()).result(False)

            # check4 (not the issuer, not in the issuer group but an internal request)
            self.expect(contact_info.is_inbox('james.bond')).result(False)
            self.expect(plone_portal_state(ANY,
                                           ANY)).result(plone_portal_state)
            self.expect(plone_portal_state.member().id).result('hugo.boss')
            self.expect(request.get_header('X-OGDS-CID', None)).result(True)

            # check5 (not the issuer but in the issuer group)
            self.expect(contact_info.is_inbox('james.bond')).result(False)
            self.expect(plone_portal_state(ANY,
                                           ANY)).result(plone_portal_state)
            self.expect(plone_portal_state.member().id).result('hugo.boss')
            self.expect(request.get_header('X-OGDS-CID', None)).result(False)
            self.expect(contact_info.is_user_in_inbox_group()).result(True)

            # check6 (issuer is a inbox, user is in the inbox group)
            self.expect(contact_info.is_inbox('inbox:client1')).result(True)
            self.expect(contact_info.get_group_of_inbox(ANY)).result(
                Group('og_inbox_group'))
            self.expect(contact_info.is_group_member('og_inbox_group',
                                                     ANY)).result(True)

            # check7 (issuer is a inbox, user is in the inbox group)
            self.expect(contact_info.is_inbox('inbox:client1')).result(True)
            self.expect(contact_info.get_group_of_inbox(ANY)).result(
                Group('og_inbox_group'))
            self.expect(contact_info.is_group_member('og_inbox_group',
                                                     ANY)).result(False)

        self.replay()

        self.assertTrue(TaskTransitionController(task1, request)._is_issuer())
        self.assertFalse(TaskTransitionController(task2, request)._is_issuer())
        self.assertFalse(
            TaskTransitionController(task2,
                                     request)._is_issuer_or_inbox_group_user())
        self.assertTrue(
            TaskTransitionController(task2,
                                     request)._is_issuer_or_inbox_group_user())
        self.assertTrue(
            TaskTransitionController(task2,
                                     request)._is_issuer_or_inbox_group_user())
        self.assertTrue(TaskTransitionController(task3, request)._is_issuer())
        self.assertFalse(
            TaskTransitionController(task3,
                                     request)._is_issuer_or_inbox_group_user())
Exemplo n.º 8
0
 def controller(self):
     task = FakeTask(self.task_type_category)
     return TaskTransitionController(task, None)