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())