def test_serialisationOfSequenceDict(self): sequence_id = "serialisation" self.registerSequenceString(sequence_id, "stepFillSequenceDict") sequence = StoredSequence(self, sequence_id) sequence.setSequenceString("stepLogin") sequence_list = SequenceList() sequence_list.addSequence(sequence) sequence_list.play(self) sequence_dict = sequence._dict # sequence._dict will be recalculated sequence.deserialiseSequenceDict(self.portal.portal_trash[ sequence._getTrashBinId(self)].serialised_sequence) self.assertEqual( sequence_dict, sequence._dict, )
def test_storedSequenceCanRestoreAState(self): sequence_id = "sequence_can_restore" self.registerSequenceString(sequence_id, """ stepCreatePerson """) sequence = StoredSequence(self, sequence_id) sequence.setSequenceString("stepUpdatePerson1") sequence_list = SequenceList() sequence_list.addSequence(sequence) sequence_list.play(self) self.assertEqual(self.portal.person_module.person.getTitle(), "Person 1") trashbin_value = self.portal.portal_trash[sequence._getTrashBinId( self)] self.assertEqual(trashbin_value.person_module.person.getTitle(), "Person") self.assertEqual(trashbin_value.getProperty("serialised_sequence"), ({ "key": "person", "type": "erp5_object", "value": "person_module/person" }, )) self.portal.person_module.manage_delObjects(ids=["person"]) # Run new sequence, with same base sequence. # Update the title of the person document in the trashbin to be # sure it has been restored from trash and not created trashbin_value.person_module.person.setTitle("Trash Person") self.tic() sequence = StoredSequence(self, sequence_id) sequence.setSequenceString("stepUpdatePerson2") sequence_list = SequenceList() sequence_list.addSequence(sequence) sequence_list.play(self) self.assertEqual(trashbin_value.person_module.person.getTitle(), "Trash Person") self.assertEqual(self.portal.person_module.person.getTitle(), "Trash Person 2")