Project durable workflow handoffs as work items
This commit is contained in:
@@ -29,7 +29,7 @@ class WorkflowMigrationTests(unittest.TestCase):
|
||||
try:
|
||||
with engine.connect() as connection:
|
||||
self.assertIn(
|
||||
"e4a1f8c2d7b6",
|
||||
"8d5a2f7c1b4e",
|
||||
set(MigrationContext.configure(connection).get_current_heads()),
|
||||
)
|
||||
self.assertEqual(
|
||||
@@ -102,7 +102,12 @@ class WorkflowMigrationTests(unittest.TestCase):
|
||||
)
|
||||
for path in current_revisions.glob("*.py"):
|
||||
if path.name.startswith(
|
||||
("0b4e7c9a2d6f_", "b2e4f6a8c0d1_", "e4a1f8c2d7b6_")
|
||||
(
|
||||
"0b4e7c9a2d6f_",
|
||||
"b2e4f6a8c0d1_",
|
||||
"e4a1f8c2d7b6_",
|
||||
"8d5a2f7c1b4e_",
|
||||
)
|
||||
):
|
||||
continue
|
||||
shutil.copy2(path, legacy_revisions / path.name)
|
||||
@@ -146,7 +151,7 @@ class WorkflowMigrationTests(unittest.TestCase):
|
||||
manifest_factories=(get_manifest,),
|
||||
)
|
||||
|
||||
self.assertIn("e4a1f8c2d7b6", result.current_revision or "")
|
||||
self.assertIn("8d5a2f7c1b4e", result.current_revision or "")
|
||||
engine = create_engine(url)
|
||||
try:
|
||||
upgraded_tables = set(inspect(engine).get_table_names())
|
||||
@@ -181,6 +186,25 @@ class WorkflowMigrationTests(unittest.TestCase):
|
||||
engine = create_engine(url)
|
||||
try:
|
||||
with engine.begin() as connection:
|
||||
for index_name in (
|
||||
"ix_workflow_instance_steps_work_assignment",
|
||||
"ix_workflow_instance_steps_work_due_at",
|
||||
"ix_workflow_instance_steps_work_assignment_id",
|
||||
"ix_workflow_instance_steps_work_assignment_kind",
|
||||
):
|
||||
connection.execute(text(f"DROP INDEX {index_name}"))
|
||||
for column_name in (
|
||||
"work_due_at",
|
||||
"work_assignment_label",
|
||||
"work_assignment_id",
|
||||
"work_assignment_kind",
|
||||
):
|
||||
connection.execute(
|
||||
text(
|
||||
"ALTER TABLE workflow_instance_steps "
|
||||
f"DROP COLUMN {column_name}"
|
||||
)
|
||||
)
|
||||
connection.execute(
|
||||
text(
|
||||
"ALTER TABLE workflow_definition_revisions "
|
||||
@@ -196,7 +220,7 @@ class WorkflowMigrationTests(unittest.TestCase):
|
||||
connection.execute(
|
||||
text(
|
||||
"UPDATE alembic_version SET version_num = "
|
||||
"'b2e4f6a8c0d1' WHERE version_num = 'e4a1f8c2d7b6'"
|
||||
"'b2e4f6a8c0d1' WHERE version_num = '8d5a2f7c1b4e'"
|
||||
)
|
||||
)
|
||||
finally:
|
||||
@@ -218,9 +242,23 @@ class WorkflowMigrationTests(unittest.TestCase):
|
||||
}
|
||||
self.assertIn("bpmn_runtime_kind", columns)
|
||||
self.assertIn("bpmn_executable", columns)
|
||||
step_columns = {
|
||||
item["name"]
|
||||
for item in inspect(engine).get_columns(
|
||||
"workflow_instance_steps"
|
||||
)
|
||||
}
|
||||
self.assertTrue(
|
||||
{
|
||||
"work_assignment_kind",
|
||||
"work_assignment_id",
|
||||
"work_assignment_label",
|
||||
"work_due_at",
|
||||
}.issubset(step_columns)
|
||||
)
|
||||
with engine.connect() as connection:
|
||||
self.assertIn(
|
||||
"e4a1f8c2d7b6",
|
||||
"8d5a2f7c1b4e",
|
||||
set(MigrationContext.configure(connection).get_current_heads()),
|
||||
)
|
||||
finally:
|
||||
|
||||
Reference in New Issue
Block a user