def delete_self_and_stop_processing(obj, eng): """Delete both versions of itself and stops the workflow.""" from invenio.modules.workflows.models import BibWorkflowObject # delete snapshot created with original data initial_obj = BibWorkflowObject.query.filter( BibWorkflowObject.id_parent == obj.id ).one() BibWorkflowObject.delete(initial_obj.id) # delete self BibWorkflowObject.delete(obj.id) eng.skipToken()
def test_workflow_without_workflow_object_saved(self): """Test that the logic tasks work correctly.""" from invenio.modules.workflows.models import BibWorkflowObject from invenio.modules.workflows.api import start, start_by_wid test_object = BibWorkflowObject() test_object.set_data(0) test_object.save() workflow = start('test_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_workflow_without_workflow_object_saved(self): """Test that the logic tasks work correctly.""" from invenio.modules.workflows.models import BibWorkflowObject from invenio.modules.workflows.api import start, start_by_wid test_object = BibWorkflowObject() test_object.set_data(0) test_object.save() workflow = start('test_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)
class TestWorkflowModels(InvenioTestCase): """Test meant for testing the models available.""" def setUp(self): """Setup tests.""" from invenio.modules.workflows.models import BibWorkflowObject, \ Workflow from uuid import uuid1 as new_uuid self.workflow = Workflow(name='test_workflow', uuid=new_uuid(), id_user=0, module_name="Unknown") self.bibworkflowobject = BibWorkflowObject(workflow=self.workflow) self.create_objects([self.workflow, self.bibworkflowobject]) def tearDown(self): """Clean up tests.""" self.delete_objects([self.workflow, self.bibworkflowobject]) def test_deleting_workflow(self): """Test deleting workflow.""" from invenio.modules.workflows.models import BibWorkflowObject, \ Workflow bwo_id = self.bibworkflowobject.id # delete workflow Workflow.delete(self.workflow.uuid) # assert bibworkflowobject is deleted self.assertFalse( db.session.query( BibWorkflowObject.query.filter( BibWorkflowObject.id == bwo_id).exists()).scalar()) def test_deleting_bibworkflowobject(self): """Test deleting workflowobject.""" from invenio.modules.workflows.models import Workflow w_uuid = self.workflow.uuid # delete bibworkflowobject self.bibworkflowobject.delete(self.bibworkflowobject.id) # assert workflow is not deleted self.assertTrue( db.session.query( Workflow.query.filter( Workflow.uuid == w_uuid).exists()).scalar())
class TestWorkflowModels(InvenioTestCase): """Test meant for testing the models available.""" def setUp(self): """Setup tests.""" from invenio.modules.workflows.models import BibWorkflowObject, \ Workflow from uuid import uuid1 as new_uuid self.workflow = Workflow(name='test_workflow', uuid=new_uuid(), id_user=0, module_name="Unknown") self.bibworkflowobject = BibWorkflowObject(workflow=self.workflow) self.create_objects([self.workflow, self.bibworkflowobject]) def tearDown(self): """Clean up tests.""" self.delete_objects([self.workflow, self.bibworkflowobject]) def test_deleting_workflow(self): """Test deleting workflow.""" from invenio.modules.workflows.models import BibWorkflowObject, \ Workflow bwo_id = self.bibworkflowobject.id # delete workflow Workflow.delete(self.workflow.uuid) # assert bibworkflowobject is deleted self.assertFalse( db.session.query( BibWorkflowObject.query.filter( BibWorkflowObject.id == bwo_id).exists()).scalar()) def test_deleting_bibworkflowobject(self): """Test deleting workflowobject.""" from invenio.modules.workflows.models import Workflow w_uuid = self.workflow.uuid # delete bibworkflowobject self.bibworkflowobject.delete(self.bibworkflowobject.id) # assert workflow is not deleted self.assertTrue( db.session.query( Workflow.query.filter( Workflow.uuid == w_uuid).exists()).scalar())
def test_workflow_for_running_object(self): """Test workflow with running object given and watch it fail.""" from invenio.modules.workflows.models import (BibWorkflowObject, ObjectVersion) from invenio.modules.workflows.api import start_by_oids from invenio.modules.workflows.errors import WorkflowObjectVersionError obj_running = BibWorkflowObject() obj_running.set_data(1234) obj_running.save(version=ObjectVersion.RUNNING) try: start_by_oids('test_workflow', [obj_running.id], module_name="unit_tests") except Exception as e: self.assertTrue(isinstance(e, WorkflowObjectVersionError)) obj_running.delete(e.id_object) obj_running.delete(obj_running) obj_running = BibWorkflowObject() obj_running.set_data(1234) obj_running.save(version=ObjectVersion.RUNNING) try: start_by_oids('test_workflow', [obj_running.id], module_name="unit_tests") except Exception as e: self.assertTrue(isinstance(e, WorkflowObjectVersionError)) obj_running.delete(e.id_object) obj_running.delete(obj_running) obj_running = BibWorkflowObject() obj_running.set_data(1234) obj_running.save(version=5) try: start_by_oids('test_workflow', [obj_running.id], module_name="unit_tests") except Exception as e: self.assertTrue(isinstance(e, WorkflowObjectVersionError)) obj_running.delete(e.id_object) obj_running.delete(obj_running)
def test_workflow_for_running_object(self): """Test workflow with running object given and watch it fail.""" from invenio.modules.workflows.models import (BibWorkflowObject, ObjectVersion) from invenio.modules.workflows.api import start_by_oids from invenio.modules.workflows.errors import WorkflowObjectVersionError obj_running = BibWorkflowObject() obj_running.set_data(1234) obj_running.save(version=ObjectVersion.RUNNING) try: start_by_oids('test_workflow', [obj_running.id], module_name="unit_tests") except Exception as e: self.assertTrue(isinstance(e, WorkflowObjectVersionError)) obj_running.delete(e.id_object) obj_running.delete(obj_running) obj_running = BibWorkflowObject() obj_running.set_data(1234) obj_running.save(version=ObjectVersion.RUNNING) try: start_by_oids('test_workflow', [obj_running.id], module_name="unit_tests") except Exception as e: self.assertTrue(isinstance(e, WorkflowObjectVersionError)) obj_running.delete(e.id_object) obj_running.delete(obj_running) obj_running = BibWorkflowObject() obj_running.set_data(1234) obj_running.save(version=5) try: start_by_oids('test_workflow', [obj_running.id], module_name="unit_tests") except Exception as e: self.assertTrue(isinstance(e, WorkflowObjectVersionError)) obj_running.delete(e.id_object) obj_running.delete(obj_running)