本文整理汇总了Python中invenio.modules.workflows.models.BibWorkflowObject.save方法的典型用法代码示例。如果您正苦于以下问题:Python BibWorkflowObject.save方法的具体用法?Python BibWorkflowObject.save怎么用?Python BibWorkflowObject.save使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类invenio.modules.workflows.models.BibWorkflowObject
的用法示例。
在下文中一共展示了BibWorkflowObject.save方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_workflow_delay
# 需要导入模块: from invenio.modules.workflows.models import BibWorkflowObject [as 别名]
# 或者: from invenio.modules.workflows.models.BibWorkflowObject import save [as 别名]
def test_workflow_delay(self):
"""Test simple delayed workflow."""
from invenio.modules.workflows.models import BibWorkflowObject
from invenio.modules.workflows.api import start_delayed, continue_oid_delayed, start_by_wid_delayed
from invenio.modules.workflows.engine import WorkflowStatus
test_objectb = BibWorkflowObject()
test_objectb.set_data(20)
test_objectb.save()
from invenio.modules.workflows.worker_result import uuid_to_workflow
asyncr = start_delayed("test_workflow", [test_objectb], module_name="unit_tests")
engineb = asyncr.get(uuid_to_workflow)
self.assertEqual(38, test_objectb.get_data())
asyncr = start_by_wid_delayed(engineb.uuid)
asyncr.get(uuid_to_workflow)
self.assertEqual(38, test_objectb.get_data())
test_objecte = BibWorkflowObject()
test_objecte.set_data(2)
test_objecte.save()
asyncr = start_delayed("test_workflow", [test_objecte], module_name="unit_tests")
engineb = asyncr.get(uuid_to_workflow)
asyncr = continue_oid_delayed(test_objecte.id)
engineb = asyncr.get(uuid_to_workflow)
self.assertEqual(WorkflowStatus.COMPLETED, engineb.status)
self.assertEqual(20, test_objecte.get_data())
示例2: test_workflow_for_finished_object
# 需要导入模块: from invenio.modules.workflows.models import BibWorkflowObject [as 别名]
# 或者: from invenio.modules.workflows.models.BibWorkflowObject import save [as 别名]
def test_workflow_for_finished_object(self):
"""Test starting workflow with finished object given."""
from invenio.modules.workflows.models import (BibWorkflowObject,
ObjectVersion)
from invenio.modules.workflows.api import start
from invenio.modules.workflows.engine import WorkflowStatus
current = BibWorkflowObject()
current.set_data(20)
current.save()
workflow = start(workflow_name="test_workflow",
data=[current],
module_name="unit_tests")
self.assertEqual(WorkflowStatus.COMPLETED, workflow.status)
self.assertEqual(ObjectVersion.COMPLETED, current.version)
self.assertEqual(38, current.get_data())
previous = BibWorkflowObject.query.get(current.id)
workflow_2 = start(workflow_name="test_workflow",
data=[previous],
module_name="unit_tests")
self.assertEqual(WorkflowStatus.COMPLETED, workflow_2.status)
self.assertEqual(ObjectVersion.COMPLETED, previous.version)
self.assertEqual(56, previous.get_data())
示例3: test_object_creation_halt
# 需要导入模块: from invenio.modules.workflows.models import BibWorkflowObject [as 别名]
# 或者: from invenio.modules.workflows.models.BibWorkflowObject import save [as 别名]
def test_object_creation_halt(self):
"""Test status of object before/after workflow.
When created before calling API, with "low" test-data that will
make the workflow halt.
"""
from invenio.modules.workflows.models import (BibWorkflowObject,
ObjectVersion)
from invenio.modules.workflows.api import start
from invenio.modules.workflows.engine import WorkflowStatus
test_object = BibWorkflowObject()
test_object.set_data(2)
test_object.save()
self.assertEqual(ObjectVersion.INITIAL, test_object.version)
self.assertEqual(None, test_object.id_parent)
self.assertEqual(2, test_object.get_data())
engine = start('test_workflow', [test_object],
module_name="unit_tests")
self.assertEqual(2, test_object.get_data())
self.assertEqual(ObjectVersion.WAITING, test_object.version)
self.assertEqual(WorkflowStatus.HALTED, engine.status)
示例4: test_workflow_object_creation
# 需要导入模块: from invenio.modules.workflows.models import BibWorkflowObject [as 别名]
# 或者: from invenio.modules.workflows.models.BibWorkflowObject import save [as 别名]
def test_workflow_object_creation(self):
"""Test to see if the right snapshots or object versions are created."""
from invenio.modules.workflows.models import (BibWorkflowObject,
ObjectVersion)
from invenio.modules.workflows.api import start
initial_data = 22
final_data = 40
test_object = BibWorkflowObject()
test_object.set_data(initial_data)
test_object.save()
workflow = start(workflow_name="test_workflow",
data=[test_object],
module_name="unit_tests")
# Get parent object of the workflow we just ran
initial_object = BibWorkflowObject.query.filter(BibWorkflowObject.id_parent == test_object.id).one()
all_objects = BibWorkflowObject.query.filter(
BibWorkflowObject.id_workflow == workflow.uuid
).order_by(BibWorkflowObject.id).all()
# There should only be 2 objects (initial, final)
self.assertEqual(2, len(all_objects))
self.assertEqual(test_object.id, initial_object.id_parent)
self.assertEqual(ObjectVersion.INITIAL, initial_object.version)
self.assertEqual(initial_data, initial_object.get_data())
self.assertEqual(final_data, test_object.get_data())
self.assertEqual(ObjectVersion.COMPLETED, test_object.version)
示例5: test_object_creation_complete
# 需要导入模块: from invenio.modules.workflows.models import BibWorkflowObject [as 别名]
# 或者: from invenio.modules.workflows.models.BibWorkflowObject import save [as 别名]
def test_object_creation_complete(self):
"""
Test status of object before/after workflow.
When created before calling API, with "high" test-data that will
make the workflow complete.
"""
from invenio.modules.workflows.models import (BibWorkflowObject,
ObjectVersion)
from invenio.modules.workflows.engine import WorkflowStatus
from invenio.modules.workflows.api import start
test_object = BibWorkflowObject()
test_object.set_data(20)
test_object.save()
self.assertEqual(ObjectVersion.INITIAL, test_object.version)
self.assertEqual(None, test_object.id_parent)
self.assertEqual(20, test_object.get_data())
engine = start('test_workflow', [test_object],
module_name="unit_tests")
self.assertEqual(38, test_object.get_data())
self.assertEqual(None, test_object.id_parent)
self.assertEqual(WorkflowStatus.COMPLETED, engine.status)
self.assertEqual(ObjectVersion.COMPLETED, test_object.version)
示例6: test_logging_for_workflow_objects_without_workflow
# 需要导入模块: from invenio.modules.workflows.models import BibWorkflowObject [as 别名]
# 或者: from invenio.modules.workflows.models.BibWorkflowObject import save [as 别名]
def test_logging_for_workflow_objects_without_workflow(self):
"""This test run a virtual object out of a workflow for
test purpose, this object will log several things"""
from invenio.modules.workflows.models import (BibWorkflowObject,
BibWorkflowObjectLog)
initial_data = {'data': 20}
obj_init = BibWorkflowObject(id_workflow=11,
version=CFG_OBJECT_VERSION.INITIAL)
obj_init.set_data(initial_data)
obj_init._update_db()
obj_init.save()
obj_init.log.info("I am a test object")
obj_init.log.error("This is an error message")
# FIXME: loglevels are simply overwritten somewhere in Celery
# even if Celery is not being "used".
#
# This means loglevel.DEBUG is NOT working at the moment!
obj_init.log.debug("This is a debug message")
obj_init._update_db()
obj_test = BibWorkflowObjectLog.query.filter(
BibWorkflowObjectLog.id_object == obj_init.id).all()
messages_found = 0
for current_obj in obj_test:
if current_obj.message == "I am a test object" \
and messages_found == 0:
messages_found += 1
elif current_obj.message == "This is an error message" \
and messages_found == 1:
messages_found += 1
elif current_obj.message == "This is a debug message" \
and messages_found == 2:
messages_found += 1
self.assertEqual(messages_found, 2) # FIXME: should be 3 when debug works
示例7: test_logic_tasks_continue
# 需要导入模块: from invenio.modules.workflows.models import BibWorkflowObject [as 别名]
# 或者: from invenio.modules.workflows.models.BibWorkflowObject import save [as 别名]
def test_logic_tasks_continue(self):
"""Test that the logic tasks work correctly when continuing."""
from invenio.modules.workflows.models import (BibWorkflowObject,
ObjectVersion)
from invenio.modules.workflows.api import (start,
continue_oid)
from invenio.modules.workflows.engine import WorkflowStatus
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"])
workflow = continue_oid(test_object.id)
self.assertEqual(6, test_object.get_data())
self.assertEqual("lt9", test_object.get_extra_data()["test"])
workflow = continue_oid(test_object.id)
self.assertEqual(9, test_object.get_data())
self.assertEqual("gte9", test_object.get_extra_data()["test"])
workflow = continue_oid(test_object.id)
self.assertEqual(15, test_object.get_data())
self.assertEqual("gte9", test_object.get_extra_data()["test"])
workflow = continue_oid(test_object.id)
self.assertEqual(ObjectVersion.COMPLETED, test_object.version)
self.assertEqual(WorkflowStatus.COMPLETED, workflow.status)
示例8: test_logging_for_workflow_objects_without_workflow
# 需要导入模块: from invenio.modules.workflows.models import BibWorkflowObject [as 别名]
# 或者: from invenio.modules.workflows.models.BibWorkflowObject import save [as 别名]
def test_logging_for_workflow_objects_without_workflow(self):
"""Test run a virtual object out of a workflow for test purpose."""
from invenio.modules.workflows.models import (BibWorkflowObject,
BibWorkflowObjectLog,
ObjectVersion)
initial_data = 20
obj_init = BibWorkflowObject(id_workflow=11,
version=ObjectVersion.INITIAL)
obj_init.set_data(initial_data)
obj_init.save()
err_msg = "This is an error message"
info_msg = "This is an info message"
obj_init.log.info(info_msg)
obj_init.log.error("This is an error message")
# FIXME: loglevels are simply overwritten somewhere in Celery
# even if Celery is not being "used".
#
# This means loglevel.DEBUG is NOT working at the moment!
# debug_msg = "This is a debug message"
# obj_init.log.debug(debug_msg)
obj_init.save()
obj_test = BibWorkflowObjectLog.query.filter(
BibWorkflowObjectLog.id_object == obj_init.id).all()
messages_found = 0
for current_obj in obj_test:
if current_obj.message == info_msg and messages_found == 0:
messages_found += 1
elif current_obj.message == err_msg and messages_found == 1:
messages_found += 1
self.assertEqual(2, messages_found)
示例9: test_workflow_without_workflow_object_saved
# 需要导入模块: from invenio.modules.workflows.models import BibWorkflowObject [as 别名]
# 或者: from invenio.modules.workflows.models.BibWorkflowObject import save [as 别名]
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)
示例10: test_workflows_tasks
# 需要导入模块: from invenio.modules.workflows.models import BibWorkflowObject [as 别名]
# 或者: from invenio.modules.workflows.models.BibWorkflowObject import save [as 别名]
def test_workflows_tasks(self):
"""Test delayed workflows in non delayed one."""
from invenio.modules.workflows.models import BibWorkflowObject
from invenio.modules.workflows.api import start
test_object = BibWorkflowObject()
test_object.save()
test_object.set_data(22)
engine = start("test_workflow_workflows", [test_object], module_name="unit_tests")
from invenio.modules.workflows.engine import WorkflowStatus
self.assertEqual(0, engine.get_extra_data()["_nb_workflow_failed"])
self.assertEqual(WorkflowStatus.COMPLETED, engine.status)
self.assertEqual(0, test_object.get_tasks_results()["review_workflow"][0]["result"]["failed"])
self.assertEqual(4, test_object.get_extra_data()["nbworkflowrunning"])
self.assertEqual(21, engine.get_extra_data()["_nb_workflow_finish"])
示例11: test_init_harvesting
# 需要导入模块: from invenio.modules.workflows.models import BibWorkflowObject [as 别名]
# 或者: from invenio.modules.workflows.models.BibWorkflowObject import save [as 别名]
def test_init_harvesting(self):
"""Test harvesting."""
from ..tasks.harvesting import init_harvesting
from invenio.modules.workflows.api import start
from invenio.modules.workflows.models import BibWorkflowObject
my_test_obj = BibWorkflowObject()
my_test_obj.set_data([2])
my_test_obj.save()
engine = start("test_workflow_dummy", my_test_obj, module_name="unit_tests")
my_test_obj.data = my_test_obj.get_data()
my_test_obj.extra_data = my_test_obj.get_extra_data()
engine.set_extra_data_params(options={"test": True})
engine.extra_data = engine.get_extra_data()
init_harvesting(my_test_obj, engine)
self.assertTrue(engine.get_extra_data()["options"]["test"])
示例12: test_workflows_tasks_chained
# 需要导入模块: from invenio.modules.workflows.models import BibWorkflowObject [as 别名]
# 或者: from invenio.modules.workflows.models.BibWorkflowObject import save [as 别名]
def test_workflows_tasks_chained(self):
"""Test delayed workflows in delayed workflow."""
from invenio.modules.workflows.models import BibWorkflowObject
from invenio.modules.workflows.api import start_delayed
from invenio.modules.workflows.worker_result import uuid_to_workflow
test_object = BibWorkflowObject()
test_object.set_data(22)
test_object.save()
async = start_delayed("test_workflow_workflows", [test_object], module_name="unit_tests")
engine = async.get(uuid_to_workflow)
from invenio.modules.workflows.engine import WorkflowStatus
self.assertEqual(21, engine.get_extra_data()["_nb_workflow_finish"])
self.assertEqual(0, engine.get_extra_data()["_nb_workflow_failed"])
self.assertEqual(WorkflowStatus.COMPLETED, engine.status)
示例13: test_filtering
# 需要导入模块: from invenio.modules.workflows.models import BibWorkflowObject [as 别名]
# 或者: from invenio.modules.workflows.models.BibWorkflowObject import save [as 别名]
def test_filtering(self):
"""Test filtering functionality."""
from ..tasks.harvesting import filtering_oai_pmh_identifier
from invenio.modules.workflows.api import start
from invenio.modules.workflows.models import BibWorkflowObject
my_test_obj = BibWorkflowObject()
my_test_obj.set_data("<record><test></test>"
"<identifier>identifier1</identifier></record>")
my_test_obj.save()
my_test_obj_b = BibWorkflowObject()
my_test_obj_b.set_data(["<record><test></test><identifier>identifier2"
"</identifier></record>"])
my_test_obj_b.save()
engine = start("test_workflow_dummy",
my_test_obj,
module_name="unit_tests")
# Initialize these attributes to simulate task running in workflows
my_test_obj.data = my_test_obj.get_data()
my_test_obj.extra_data = my_test_obj.get_extra_data()
my_test_obj_b.data = my_test_obj_b.get_data()
my_test_obj_b.extra_data = my_test_obj_b.get_extra_data()
engine.extra_data = engine.get_extra_data()
# Try to add an identifier
self.assertTrue(filtering_oai_pmh_identifier(my_test_obj, engine))
# Update engine with the added identifier
engine.set_extra_data(engine.extra_data)
engine.extra_data = engine.get_extra_data()
# False because it is already added
self.assertFalse(filtering_oai_pmh_identifier(my_test_obj, engine))
engine.set_extra_data(engine.extra_data)
engine.extra_data = engine.get_extra_data()
self.assertTrue(filtering_oai_pmh_identifier(my_test_obj_b, engine))
engine.set_extra_data(engine.extra_data)
engine.extra_data = engine.get_extra_data()
# False because it is already added
self.assertFalse(filtering_oai_pmh_identifier(my_test_obj_b, engine))
engine.set_extra_data(engine.extra_data)
engine.extra_data = engine.get_extra_data()
示例14: test_dirty_worker
# 需要导入模块: from invenio.modules.workflows.models import BibWorkflowObject [as 别名]
# 或者: from invenio.modules.workflows.models.BibWorkflowObject import save [as 别名]
def test_dirty_worker(self):
"""Deep test of celery worker."""
from ..workers.worker_celery import celery_run, celery_restart, celery_continue
from invenio.modules.workflows.utils import BibWorkflowObjectIdContainer
from invenio.modules.workflows.models import BibWorkflowObject, get_default_extra_data
test_objectb = BibWorkflowObject()
test_objectb.set_data(22)
test_objectb.save()
data = BibWorkflowObjectIdContainer(test_objectb).to_dict()
celery_run("test_workflow", [data], module_name="unit_tests")
self.assertEqual(40, test_objectb.get_data())
test_object = BibWorkflowObject()
test_object.set_data(22)
test_object.save()
test_objectc = BibWorkflowObject()
test_objectc.set_data(22)
test_objectc.save()
data = [test_object, test_objectc]
for i in range(0, len(data)):
if isinstance(data[i], BibWorkflowObject):
data[i] = BibWorkflowObjectIdContainer(data[i]).to_dict()
celery_run("test_workflow", data, module_name="unit_tests")
self.assertEqual(40, test_object.get_data())
self.assertEqual(40, test_objectc.get_data())
test_object = BibWorkflowObject()
test_object.save()
test_object.set_data(0)
from invenio.modules.workflows.worker_result import uuid_to_workflow
engine = uuid_to_workflow(celery_run("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"])
engine._extra_data = get_default_extra_data() # reset iterators
celery_restart(engine.uuid)
self.assertEqual(5, test_object.get_data())
self.assertEqual("lt9", test_object.get_extra_data()["test"])
celery_continue(test_object.id, "continue_next")
self.assertEqual(6, test_object.get_data())
self.assertEqual("lt9", test_object.get_extra_data()["test"])
celery_continue(test_object.id, "continue_next")
self.assertEqual(9, test_object.get_data())
self.assertEqual("gte9", test_object.get_extra_data()["test"])
celery_continue(test_object.id, "continue_next")
self.assertEqual(15, test_object.get_data())
self.assertEqual("gte9", test_object.get_extra_data()["test"])
engine = uuid_to_workflow(celery_continue(test_object.id, "continue_next", module_name="unit_tests"))
from invenio.modules.workflows.engine import WorkflowStatus
self.assertEqual(WorkflowStatus.COMPLETED, engine.status)
示例15: test_workflow_task_results
# 需要导入模块: from invenio.modules.workflows.models import BibWorkflowObject [as 别名]
# 或者: from invenio.modules.workflows.models.BibWorkflowObject import save [as 别名]
def test_workflow_task_results(self):
"""Test the setting and getting of task results."""
from invenio.modules.workflows.models import BibWorkflowObject
test_object = BibWorkflowObject()
test_object.save() # Saving is needed to instantiate default values
test_object.add_task_result("test", {"data": "testing"})
results = test_object.get_tasks_results()
self.assertEqual(len(results.get("test")), 1)
result_item = results.get("test")[0]
self.assertEqual({"data": "testing"},
result_item.get("result"))
self.assertEqual("workflows/results/default.html",
result_item.get("template"))
self.assertEqual("test",
result_item.get("name"))