def test_halt_in_branch(self): """Test halt task when in conditionnal branch.""" from workflow.patterns import IF_ELSE from invenio.modules.workflows.registry import workflows from invenio.modules.workflows.api import start from invenio.modules.workflows.engine import WorkflowStatus from invenio.modules.workflows.models import (BibWorkflowObjectLog, ObjectVersion) always_true = lambda obj, eng: True halt_engine = lambda obj, eng: eng.halt("Test") class BranchTest(object): workflow = [ IF_ELSE(always_true, [halt_engine], [halt_engine]) ] workflows['branchtest'] = BranchTest data = [set(('somekey', 'somevalue'))] eng = start('branchtest', data, module_name="unit_tests") idx, obj = list(eng.getObjects())[0] self.assertEqual(ObjectVersion.WAITING, obj.version) self.assertEqual(WorkflowStatus.HALTED, eng.status) self.assertEqual(0, BibWorkflowObjectLog.get( id_object=obj.id, log_type=logging.ERROR).count())
def test_halt_in_branch(self): """Test halt task when in conditionnal branch.""" from workflow.patterns import IF_ELSE from invenio.modules.workflows.registry import workflows from invenio.modules.workflows.api import start from invenio.modules.workflows.engine import WorkflowStatus from invenio.modules.workflows.models import (BibWorkflowObjectLog, ObjectVersion) always_true = lambda obj, eng: True halt_engine = lambda obj, eng: eng.halt("Test") class BranchTest(object): workflow = [ IF_ELSE(always_true, [halt_engine], [halt_engine]) ] workflows['branchtest'] = BranchTest data = [set(('somekey', 'somevalue'))] eng = start('branchtest', data, module_name="unit_tests") idx, obj = list(eng.getObjects())[0] self.assertEqual(ObjectVersion.WAITING, obj.version) self.assertEqual(WorkflowStatus.HALTED, eng.status) self.assertEqual(0, BibWorkflowObjectLog.get( id_object=obj.id, log_type=logging.ERROR).count())
def tearDown(self): """ Clean up created objects """ from invenio.modules.workflows.models import (BibWorkflowObject, Workflow, BibWorkflowEngineLog, BibWorkflowObjectLog) from invenio.modules.workflows.utils import get_redis_keys, set_up_redis workflows = Workflow.get(Workflow.module_name == "unit_tests").all() for workflow in workflows: BibWorkflowObject.query.filter( BibWorkflowObject.id_workflow == workflow.uuid).delete() objects = BibWorkflowObjectLog.query.filter( BibWorkflowObject.id_workflow == workflow.uuid).all() for obj in objects: db.session.delete(obj) db.session.delete(workflow) objects = BibWorkflowObjectLog.query.filter( BibWorkflowObject.id_workflow == workflow.uuid).all() for obj in objects: BibWorkflowObjectLog.delete(id=obj.id) BibWorkflowEngineLog.delete(uuid=workflow.uuid) # Deleting dumy object created in tests db.session.query(BibWorkflowObject).filter( BibWorkflowObject.id_workflow.in_( [11, 123, 253])).delete(synchronize_session='fetch') Workflow.query.filter(Workflow.module_name == "unit_tests").delete() db.session.commit() rs = set_up_redis() keys = get_redis_keys() for key in keys: keys2 = get_redis_keys(key) for key2 in keys2: rs.delete("holdingpen_sort:%s:%s" % ( key, key2, )) rs.delete("holdingpen_sort:%s" % (key, )) rs.delete("holdingpen_sort")
def tearDown(self): """ Clean up created objects """ from invenio.modules.workflows.models import (BibWorkflowObject, Workflow, BibWorkflowEngineLog, BibWorkflowObjectLog) from invenio.modules.workflows.utils import get_redis_keys, set_up_redis workflows = Workflow.get(Workflow.module_name == "unit_tests").all() for workflow in workflows: BibWorkflowObject.query.filter( BibWorkflowObject.id_workflow == workflow.uuid ).delete() objects = BibWorkflowObjectLog.query.filter( BibWorkflowObject.id_workflow == workflow.uuid ).all() for obj in objects: db.session.delete(obj) db.session.delete(workflow) objects = BibWorkflowObjectLog.query.filter( BibWorkflowObject.id_workflow == workflow.uuid ).all() for obj in objects: BibWorkflowObjectLog.delete(id=obj.id) BibWorkflowEngineLog.delete(uuid=workflow.uuid) # Deleting dumy object created in tests db.session.query(BibWorkflowObject).filter( BibWorkflowObject.id_workflow.in_([11, 123, 253]) ).delete(synchronize_session='fetch') Workflow.query.filter(Workflow.module_name == "unit_tests").delete() db.session.commit() rs = set_up_redis() keys = get_redis_keys() for key in keys: keys2 = get_redis_keys(key) for key2 in keys2: rs.delete("holdingpen_sort:%s:%s" % (key, key2,)) rs.delete("holdingpen_sort:%s" % (key,)) rs.delete("holdingpen_sort")
def test_halt(self): """Test halt task.""" from invenio.modules.workflows.registry import workflows from invenio.modules.workflows.api import start from invenio.modules.workflows.engine import WorkflowStatus from invenio.modules.workflows.models import (BibWorkflowObjectLog, ObjectVersion) halt_engine = lambda obj, eng: eng.halt("Test") class HaltTest(object): workflow = [halt_engine] workflows['halttest'] = HaltTest data = [set(('somekey', 'somevalue'))] eng = start('halttest', data, module_name="unit_tests") idx, obj = list(eng.getObjects())[0] self.assertEqual(ObjectVersion.WAITING, obj.version) self.assertEqual(WorkflowStatus.HALTED, eng.status) self.assertEqual(0, BibWorkflowObjectLog.get( id_object=obj.id, log_type=logging.ERROR).count())
def test_halt(self): """Test halt task.""" from invenio.modules.workflows.registry import workflows from invenio.modules.workflows.api import start from invenio.modules.workflows.engine import WorkflowStatus from invenio.modules.workflows.models import (BibWorkflowObjectLog, ObjectVersion) halt_engine = lambda obj, eng: eng.halt("Test") class HaltTest(object): workflow = [halt_engine] workflows['halttest'] = HaltTest data = [set(('somekey', 'somevalue'))] eng = start('halttest', data, module_name="unit_tests") idx, obj = list(eng.getObjects())[0] self.assertEqual(ObjectVersion.WAITING, obj.version) self.assertEqual(WorkflowStatus.HALTED, eng.status) self.assertEqual(0, BibWorkflowObjectLog.get( id_object=obj.id, log_type=logging.ERROR).count())