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())
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())
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())
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())
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())
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
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())
def controller(self): task = FakeTask(self.task_type_category) return TaskTransitionController(task, None)