def test_restart_workflow(self): """Test restarting workflow for given workflow id.""" from invenio_workflows.models import (BibWorkflowObject, ObjectVersion) from invenio_workflows.api import start, start_by_wid initial_data = 1 init_workflow = start(workflow_name="demo_workflow", data=[initial_data], module_name="unit_tests") init_objects = BibWorkflowObject.query.filter( BibWorkflowObject.id_workflow == init_workflow.uuid ).order_by(BibWorkflowObject.id).all() self.assertEqual(2, len(init_objects)) restarted_workflow = start_by_wid(wid=init_workflow.uuid, module_name="unit_tests") # We expect the same workflow to be re-started self.assertTrue(init_workflow.uuid == restarted_workflow.uuid) restarted_objects = BibWorkflowObject.query.filter( BibWorkflowObject.id_workflow == restarted_workflow.uuid ).order_by(BibWorkflowObject.id).all() # This time we should only have one more initial object self.assertEqual(2, len(restarted_objects)) # Last object will be INITIAL self.assertEqual(ObjectVersion.INITIAL, restarted_objects[1].version) self.assertEqual(restarted_objects[1].id_parent, restarted_objects[0].id)
def test_workflow_without_workflow_object_saved(self): """Test that the logic tasks work correctly.""" from invenio_workflows.models import BibWorkflowObject from invenio_workflows.api import start, start_by_wid test_object = BibWorkflowObject() test_object.set_data(0) test_object.save() workflow = start('demo_workflow_logic', [test_object], module_name="unit_tests") self.assertEqual(5, test_object.get_data()) self.assertEqual("lt9", test_object.get_extra_data()["test"]) start_by_wid(workflow.uuid) test_object.delete(test_object.id)
def test_restart_workflow(self): """Test restarting workflow for given workflow id.""" from invenio_workflows.models import (BibWorkflowObject, ObjectVersion) from invenio_workflows.api import start, start_by_wid initial_data = 1 init_workflow = start(workflow_name="demo_workflow", data=[initial_data], module_name="unit_tests") init_objects = BibWorkflowObject.query.filter( BibWorkflowObject.id_workflow == init_workflow.uuid).order_by( BibWorkflowObject.id).all() self.assertEqual(2, len(init_objects)) restarted_workflow = start_by_wid(wid=init_workflow.uuid, module_name="unit_tests") # We expect the same workflow to be re-started self.assertTrue(init_workflow.uuid == restarted_workflow.uuid) restarted_objects = BibWorkflowObject.query.filter( BibWorkflowObject.id_workflow == restarted_workflow.uuid).order_by( BibWorkflowObject.id).all() # This time we should only have one more initial object self.assertEqual(2, len(restarted_objects)) # Last object will be INITIAL self.assertEqual(ObjectVersion.INITIAL, restarted_objects[1].version) self.assertEqual(restarted_objects[1].id_parent, restarted_objects[0].id)
def test_workflow_without_workflow_object_saved(self): """Test that the logic tasks work correctly.""" from invenio_workflows.models import BibWorkflowObject from invenio_workflows.api import start, start_by_wid test_object = BibWorkflowObject() test_object.set_data(0) test_object.save() workflow = start( 'demo_workflow_logic', [test_object], module_name="unit_tests") self.assertEqual(5, test_object.get_data()) self.assertEqual("lt9", test_object.get_extra_data()["test"]) start_by_wid(workflow.uuid) test_object.delete(test_object.id)
def test_logic_tasks_restart(self): """Test that the logic tasks work correctly when restarted.""" from invenio_workflows.models import BibWorkflowObject from invenio_workflows.api import (start, start_by_wid) test_object = BibWorkflowObject() test_object.set_data(0) test_object.save() # Initial run workflow = start('demo_workflow_logic', [test_object], module_name="unit_tests") self.assertEqual(5, test_object.get_data()) self.assertEqual("lt9", test_object.get_extra_data()["test"]) # Reset before re-starting (reset Iterator data) workflow.reset_extra_data() workflow = start_by_wid(workflow.uuid) self.assertEqual(5, test_object.get_data()) self.assertEqual("lt9", test_object.get_extra_data()["test"])