Пример #1
0
    def setUp(self):
        """ Set up test environment
        """
        super(TestOpengeverSharingIntegration, self).setUp()
        self.grant('Manager')

        self.repo = create(Builder("repository"))
        self.dossier = create(Builder("dossier").within(self.repo))

        self.view_repo = OpengeverSharingView(self.repo, self.portal.REQUEST)
        self.view_dossier = OpengeverSharingView(self.dossier,
                                                 self.portal.REQUEST)

        # Event class to look for fired events
        class MockEvent(object):

            # History: [[interface, context], ]
            event_history = []

            def mock_handler(self, event):
                self.event_history.append(event, )

            def last_event(self):
                return self.event_history[-1]

        self.mock_event = MockEvent()
    def setUp(self):
        """ Set up test environment
        """
        super(TestOpengeverSharingIntegration, self).setUp()
        self.grant('Manager')
        create(Builder('fixture').with_admin_unit())
        self.repo = create(Builder("repository"))
        self.dossier = create(Builder("dossier").within(self.repo))

        self.view_repo = OpengeverSharingView(self.repo, self.portal.REQUEST)
        self.view_dossier = OpengeverSharingView(self.dossier, self.portal.REQUEST)
        self.tab_dossier = SharingTab(self.dossier, self.portal.REQUEST)
Пример #3
0
    def base_available_roles(self, provide=""):
        """ Test available_roles mehtod from OpengeverSharingView class
        """
        # Context
        context = self.create_dummy()
        if provide:
            directlyProvides(context, provide)

        mock_context = self.mocker.proxy(context)

        # Request
        request = self.create_dummy()
        mock_request = self.mocker.proxy(request)

        # Sharing view
        sharing = OpengeverSharingView(mock_context, mock_request)
        mock_sharing = self.mocker.patch(sharing)
        self.expect(mock_sharing.roles()).result([
            {
                'id': 'Reader',
            },
        ]).count(0, None)

        self.replay()

        return sharing.available_roles()
Пример #4
0
    def base_role_settings(self, roles):
        """ Test role_settings method of OpengeverSharingView class
        """
        result_existing = \
            [{'disabled': False,
              'type': 'group',
              'id': 'AuthenticatedUsers',
              'roles': {},
              'title': u'Logged-in users'}, ]
        result_group = \
             [{'disabled': False,
              'type': 'group',
              'id': u'og_mandant1_users',
              'roles': {},
              'title': 'og_mandant1_users'}, ]
        result_user = \
             [{'disabled': False,
              'type': 'user',
              'id': u'og_ska-arch_leitung',
              'roles': {},
              'title': u'og_ska-arch_leitung'}, ]

        # Member
        member = list('member')
        mock_member = self.mocker.proxy(member, spec=False)
        self.expect(mock_member.getRolesInContext(ANY)).result(roles)

        # Context
        mock_context = self.mocker.mock(count=False)
        self.expect(mock_context.__parent__).result(mock_context)
        self.expect(
            mock_context.portal_membership.getAuthenticatedMember()).result(
                mock_member)

        # Request
        request = self.create_dummy()
        mock_request = self.mocker.proxy(request)
        self.expect(mock_request.form).result({})

        # Sharing view
        sharing = OpengeverSharingView(mock_context, mock_request)
        mock_sharing = self.mocker.patch(sharing, spec=False)
        self.expect(
            mock_sharing.existing_role_settings()).result(result_existing)
        self.expect(mock_sharing.user_search_results()).result(result_group)
        self.expect(mock_sharing.group_search_results()).result(result_user)

        self.replay()

        return mock_sharing.role_settings()
Пример #5
0
    def base_roles(self, check_permission):
        """ Test roles method of OpengeverSharingView class
        """
        # Context
        mock_context = self.mocker.mock(count=False)

        # Request
        request = self.create_dummy()
        mock_request = self.mocker.proxy(request)

        # Membership Tool
        mtool = MembershipTool()
        mock_mtool = self.mocker.proxy(mtool, spec=None, count=False)
        self.expect(
            mock_mtool.checkPermission('Sharing page: Delegate Reader role',
                                       ANY)).result(True)
        self.expect(
            mock_mtool.checkPermission('Sharing page: Delegate roles',
                                       ANY)).result(False)
        self.mock_tool(mock_mtool, 'portal_membership')

        # SharingPageRole Utility 1
        utility1 = self.mocker.mock(count=False)
        self.expect(utility1.required_permission).result(
            'Sharing page: Delegate Reader role')
        self.expect(utility1.title).result('utility_1')

        self.mock_utility(utility1, ISharingPageRole, 'Reader')

        # SharingPageRole Utility 2
        utility2 = self.mocker.mock(count=False)
        self.expect(utility2.required_permission).result(
            'Sharing page: Delegate roles')
        self.expect(utility2.title).result('utility_2')

        self.mock_utility(utility2, ISharingPageRole, 'Administrator')

        self.replay()

        # Sharing view
        sharing = OpengeverSharingView(mock_context, mock_request)

        return sharing.roles(check_permission)
Пример #6
0
    def test_principal_search_results(self):
        # Context
        context = self.create_dummy()
        mock_context = self.mocker.proxy(context)

        # Request
        request = self.create_dummy()
        mock_request = self.mocker.proxy(request)

        # Sharing view
        _principal_search_results = self.mocker.replace(
            'plone.app.workflow.browser.sharing.SharingView._principal_search_results'
        )

        #contact info mock
        utility_mock = self.mocker.mock()
        self.mock_utility(utility_mock, IContactInformation)

        #registry mock
        registry_mock = self.mocker.mock()
        self.mock_utility(registry_mock, IRegistry)
        reg_proxy_mock = self.mocker.mock()
        self.expect(registry_mock.forInterface(ISharingConfiguration)).result(
            reg_proxy_mock)

        self.expect(reg_proxy_mock.black_list_prefix).result(u'^og_').count(
            0, None)
        self.expect(
            reg_proxy_mock.white_list_prefix).result(u'^og_ska-arch').count(
                0, None)

        user1 = self.create_dummy(userid='sb2m1')
        user2 = self.create_dummy(userid='sb1m1')

        self.expect(utility_mock.list_assigned_users()).result([user1, user2])

        self.expect(_principal_search_results(
            ANY, ANY, ANY, ANY, ANY, ANY)).result([
                {
                    'type': 'user',
                    'id': 'sb2m1',
                    'roles': {
                        u'Publisher': False,
                        u'Administrator': False,
                        u'Editor': False,
                        u'Reader': False,
                        u'Contributor': False,
                        u'Reviewer': False
                    },
                    'title': 'Sachbearbeiter2 Mandant1'
                },
                {
                    'type': 'user',
                    'id': 'sb1m1',
                    'roles': {
                        u'Publisher': False,
                        u'Administrator': False,
                        u'Editor': False,
                        u'Reader': False,
                        u'Contributor': False,
                        u'Reviewer': False
                    },
                    'title': 'Sachbearbeiter1 Mandant1'
                },
                {
                    'type': 'user',
                    'id': 'sb1m2',
                    'roles': {
                        u'Publisher': False,
                        u'Administrator': False,
                        u'Editor': False,
                        u'Reader': False,
                        u'Contributor': False,
                        u'Reviewer': False
                    },
                    'title': 'Leitung1 Mandant1'
                },
                {
                    'type': 'user',
                    'id': 'sb2m2',
                    'roles': {
                        u'Publisher': False,
                        u'Administrator': False,
                        u'Editor': False,
                        u'Reader': False,
                        u'Contributor': False,
                        u'Reviewer': False
                    },
                    'title': 'Sekretariat1 Mandant1'
                },
                {
                    'type': 'group',
                    'id': 'other_group',
                    'roles': {
                        u'Publisher': False,
                        u'Administrator': False,
                        u'Editor': False,
                        u'Reader': False,
                        u'Contributor': False,
                        u'Reviewer': False
                    },
                    'title': 'Administrator1 Mandant1'
                },
                {
                    'type': 'group',
                    'id': 'og_ska-arch_users',
                    'roles': {
                        u'Publisher': False,
                        u'Administrator': False,
                        u'Editor': False,
                        u'Reader': False,
                        u'Contributor': False,
                        u'Reviewer': False
                    },
                    'title': 'Users of SKA ARCH'
                },
                {
                    'type': 'group',
                    'id': 'og_bd-arp_users',
                    'roles': {
                        u'Publisher': False,
                        u'Administrator': False,
                        u'Editor': False,
                        u'Reader': False,
                        u'Contributor': False,
                        u'Reviewer': False
                    },
                    'title': 'Users of BD.ARP'
                },
                {
                    'type': 'group',
                    'id': 'og_bd-arp_og_ska-arch-users',
                    'roles': {
                        u'Publisher': False,
                        u'Administrator': False,
                        u'Editor': False,
                        u'Reader': False,
                        u'Contributor': False,
                        u'Reviewer': False
                    },
                    'title': 'Users of BD.ARP'
                },
            ])

        self.replay()

        sharing = OpengeverSharingView(mock_context, mock_request)
        principals = sharing._principal_search_results(None, None, None, None,
                                                       None)

        # the wrapper shouldn't return the users wich aren't assigned to this client.
        # and also the groups from other og cliens shouldn't be returned.
        self.assertTrue([principal.get('id') for principal in principals],
                        ['sb2m1', 'sb1m1', 'other_group', 'og_ska-arch_users'])