Esempio n. 1
0
    def test_accept_forwarding_with_successor_with_dossier(self):
        create_client('plone')
        set_current_client_id(self.portal, 'plone')

        # create fake predecessor
        predecessor = Task(FAKE_INTID, 'client2')
        predecessor.physical_path = 'eingangskorb/forwarding-1'
        predecessor.issuer = 'testuser2'
        predecessor.responsible_client = 'plone'
        predecessor.responsible = TEST_USER_ID
        predecessor.deadline = datetime.now()

        remote_request = self.mocker.replace('opengever.ogds.base.utils.remote_request')

        self.expect(remote_request(
                'client2', '@@transporter-extract-object-json',
                path='eingangskorb/forwarding-1',
                data={},
                headers={})).result(FakeResponse(FORWARDING_EXTRACTION))

        self.expect(remote_request(
                'client2', '@@task-documents-extract',
                path='eingangskorb/forwarding-1',
                data={'documents': 'null'},
                headers={})).result(FakeResponse(DOCUMENT_EXTRACTION))

        # TODO replace any with the realy expected data
        self.expect(remote_request(
                'client2', '@@task-responses-extract',
                path='eingangskorb/forwarding-1',
                data=ANY)).result(FakeResponse('[]'))

        self.expect(remote_request(
                'client2', '@@store_forwarding_in_yearfolder',
                path='eingangskorb/forwarding-1',
                # data={'response_text': 'This is a message',
                #       'successor_oguid': u'plone:1231066935',
                #       'transition': 'forwarding-transition-accept'}
                data=ANY,
                )).result(FakeResponse('OK'))

        self.replay()


        wft = getToolByName(self.portal, 'portal_workflow')
        intids = getUtility(IIntIds)


        session = Session()
        session.add(predecessor)

        accept_forwarding_with_successor(
            self.portal,
            'client2:%s' % FAKE_INTID,
            u'This is a message',
            dossier=self.dossier)

        # CHECKS
        # ---------------------
        # yearfolder:
        current_year = datetime.now().year
        yearfolder = self.inbox.get(str(current_year), None)
        self.assertTrue(yearfolder)
        self.assertEquals(yearfolder.title, u'Closed %s' % current_year)

        # forwarding ...
        # is stored in the yearfolder
        forwarding = yearfolder.get('forwarding-1', None)
        self.assertTrue(forwarding)

        # and closed
        self.assertEquals(wft.getInfoFor(forwarding, 'review_state'),
                          'forwarding-state-closed')

        # attributes are correctly moved
        self.assertEquals(forwarding.responsible, u'inbox:plone')

        # the issuer should be changed to the local inbox group
        self.assertEquals(forwarding.issuer, u'inbox:plone')

        # also the response is correctly added
        response = IResponseContainer(forwarding)[0]
        self.assertEquals(response.transition, 'forwarding-transition-accept')

        # task (succesor of the forwarding)
        task = self.dossier.get('task-1')
        self.assertTrue(task)
        self.assertEquals(
            ISuccessorTaskController(forwarding).get_successors()[0].int_id,
            intids.getId(task))

        # the succesor link is also in the response correctly
        self.assertEquals(
            response.successor_oguid,
            ISuccessorTaskController(task).get_oguid())