dbos 1.9.0a2__tar.gz → 1.9.0a4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dbos might be problematic. Click here for more details.

Files changed (109) hide show
  1. {dbos-1.9.0a2 → dbos-1.9.0a4}/PKG-INFO +1 -1
  2. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_core.py +2 -1
  3. {dbos-1.9.0a2 → dbos-1.9.0a4}/pyproject.toml +1 -1
  4. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_admin_server.py +3 -3
  5. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_async.py +6 -6
  6. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_async_workflow_management.py +3 -3
  7. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_classdecorators.py +27 -0
  8. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_dbos.py +6 -7
  9. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_queue.py +2 -3
  10. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_workflow_management.py +4 -4
  11. {dbos-1.9.0a2 → dbos-1.9.0a4}/LICENSE +0 -0
  12. {dbos-1.9.0a2 → dbos-1.9.0a4}/README.md +0 -0
  13. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/__init__.py +0 -0
  14. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/__main__.py +0 -0
  15. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_admin_server.py +0 -0
  16. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_app_db.py +0 -0
  17. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_classproperty.py +0 -0
  18. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_client.py +0 -0
  19. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_conductor/conductor.py +0 -0
  20. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_conductor/protocol.py +0 -0
  21. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_context.py +0 -0
  22. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_croniter.py +0 -0
  23. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_dbos.py +0 -0
  24. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_dbos_config.py +0 -0
  25. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_debug.py +0 -0
  26. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_docker_pg_helper.py +0 -0
  27. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_error.py +0 -0
  28. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_event_loop.py +0 -0
  29. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_fastapi.py +0 -0
  30. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_flask.py +0 -0
  31. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_kafka.py +0 -0
  32. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_kafka_message.py +0 -0
  33. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_logger.py +0 -0
  34. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_migrations/env.py +0 -0
  35. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_migrations/script.py.mako +0 -0
  36. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_migrations/versions/04ca4f231047_workflow_queues_executor_id.py +0 -0
  37. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_migrations/versions/27ac6900c6ad_add_queue_dedup.py +0 -0
  38. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_migrations/versions/50f3227f0b4b_fix_job_queue.py +0 -0
  39. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_migrations/versions/5c361fc04708_added_system_tables.py +0 -0
  40. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_migrations/versions/66478e1b95e5_consolidate_queues.py +0 -0
  41. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_migrations/versions/83f3732ae8e7_workflow_timeout.py +0 -0
  42. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_migrations/versions/933e86bdac6a_add_queue_priority.py +0 -0
  43. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_migrations/versions/a3b18ad34abe_added_triggers.py +0 -0
  44. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_migrations/versions/d76646551a6b_job_queue_limiter.py +0 -0
  45. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_migrations/versions/d76646551a6c_workflow_queue.py +0 -0
  46. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_migrations/versions/d994145b47b6_consolidate_inputs.py +0 -0
  47. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_migrations/versions/eab0cc1d9a14_job_queue.py +0 -0
  48. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_migrations/versions/f4b9b32ba814_functionname_childid_op_outputs.py +0 -0
  49. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_outcome.py +0 -0
  50. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_queue.py +0 -0
  51. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_recovery.py +0 -0
  52. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_registrations.py +0 -0
  53. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_roles.py +0 -0
  54. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_scheduler.py +0 -0
  55. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_schemas/__init__.py +0 -0
  56. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_schemas/application_database.py +0 -0
  57. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_schemas/system_database.py +0 -0
  58. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_serialization.py +0 -0
  59. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_sys_db.py +0 -0
  60. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_templates/dbos-db-starter/README.md +0 -0
  61. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_templates/dbos-db-starter/__package/__init__.py +0 -0
  62. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_templates/dbos-db-starter/__package/main.py.dbos +0 -0
  63. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_templates/dbos-db-starter/__package/schema.py +0 -0
  64. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_templates/dbos-db-starter/alembic.ini +0 -0
  65. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_templates/dbos-db-starter/dbos-config.yaml.dbos +0 -0
  66. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_templates/dbos-db-starter/migrations/env.py.dbos +0 -0
  67. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_templates/dbos-db-starter/migrations/script.py.mako +0 -0
  68. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_templates/dbos-db-starter/migrations/versions/2024_07_31_180642_init.py +0 -0
  69. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_templates/dbos-db-starter/start_postgres_docker.py +0 -0
  70. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_tracer.py +0 -0
  71. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_utils.py +0 -0
  72. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/_workflow_commands.py +0 -0
  73. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/cli/_github_init.py +0 -0
  74. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/cli/_template_init.py +0 -0
  75. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/cli/cli.py +0 -0
  76. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/dbos-config.schema.json +0 -0
  77. {dbos-1.9.0a2 → dbos-1.9.0a4}/dbos/py.typed +0 -0
  78. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/__init__.py +0 -0
  79. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/atexit_no_ctor.py +0 -0
  80. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/atexit_no_launch.py +0 -0
  81. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/classdefs.py +0 -0
  82. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/client_collateral.py +0 -0
  83. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/client_worker.py +0 -0
  84. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/conftest.py +0 -0
  85. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/dupname_classdefs1.py +0 -0
  86. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/dupname_classdefsa.py +0 -0
  87. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/more_classdefs.py +0 -0
  88. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/queuedworkflow.py +0 -0
  89. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_cli.py +0 -0
  90. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_client.py +0 -0
  91. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_concurrency.py +0 -0
  92. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_config.py +0 -0
  93. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_croniter.py +0 -0
  94. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_debug.py +0 -0
  95. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_docker_secrets.py +0 -0
  96. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_failures.py +0 -0
  97. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_fastapi.py +0 -0
  98. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_fastapi_roles.py +0 -0
  99. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_flask.py +0 -0
  100. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_kafka.py +0 -0
  101. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_outcome.py +0 -0
  102. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_package.py +0 -0
  103. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_scheduler.py +0 -0
  104. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_schema_migration.py +0 -0
  105. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_singleton.py +0 -0
  106. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_spans.py +0 -0
  107. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_sqlalchemy.py +0 -0
  108. {dbos-1.9.0a2 → dbos-1.9.0a4}/tests/test_workflow_introspection.py +0 -0
  109. {dbos-1.9.0a2 → dbos-1.9.0a4}/version/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dbos
3
- Version: 1.9.0a2
3
+ Version: 1.9.0a4
4
4
  Summary: Ultra-lightweight durable execution in Python
5
5
  Author-Email: "DBOS, Inc." <contact@dbos.dev>
6
6
  License: MIT
@@ -49,6 +49,7 @@ from ._context import (
49
49
  get_local_dbos_context,
50
50
  )
51
51
  from ._error import (
52
+ DBOSAwaitedWorkflowCancelledError,
52
53
  DBOSException,
53
54
  DBOSMaxStepRetriesExceeded,
54
55
  DBOSNonExistentWorkflowError,
@@ -370,7 +371,7 @@ def _get_wf_invoke_func(
370
371
  r: R = dbos._sys_db.await_workflow_result(status["workflow_uuid"])
371
372
  return r
372
373
  except DBOSWorkflowCancelledError as error:
373
- raise
374
+ raise DBOSAwaitedWorkflowCancelledError(status["workflow_uuid"])
374
375
  except Exception as error:
375
376
  if not dbos.debug_mode:
376
377
  dbos._sys_db.update_workflow_outcome(
@@ -27,7 +27,7 @@ dependencies = [
27
27
  ]
28
28
  requires-python = ">=3.9"
29
29
  readme = "README.md"
30
- version = "1.9.0a2"
30
+ version = "1.9.0a4"
31
31
 
32
32
  [project.license]
33
33
  text = "MIT"
@@ -20,7 +20,7 @@ from dbos import (
20
20
  WorkflowHandle,
21
21
  _workflow_commands,
22
22
  )
23
- from dbos._error import DBOSWorkflowCancelledError
23
+ from dbos._error import DBOSAwaitedWorkflowCancelledError
24
24
  from dbos._schemas.system_database import SystemSchema
25
25
  from dbos._sys_db import SystemDatabase, WorkflowStatusString
26
26
  from dbos._utils import INTERNAL_QUEUE_NAME, GlobalParams
@@ -306,7 +306,7 @@ def test_admin_workflow_resume(dbos: DBOS, sys_db: SystemDatabase) -> None:
306
306
  )
307
307
  assert response.status_code == 204
308
308
  event.set()
309
- with pytest.raises(DBOSWorkflowCancelledError):
309
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
310
310
  handle.get_result()
311
311
  info = _workflow_commands.get_workflow(sys_db, wfid)
312
312
  assert info is not None
@@ -750,7 +750,7 @@ def test_admin_global_timeout(dbos: DBOS) -> None:
750
750
  timeout=5,
751
751
  )
752
752
  response.raise_for_status()
753
- with pytest.raises(DBOSWorkflowCancelledError):
753
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
754
754
  handle.get_result()
755
755
 
756
756
 
@@ -18,7 +18,7 @@ from dbos import (
18
18
  from dbos._context import assert_current_dbos_context
19
19
  from dbos._dbos import WorkflowHandle
20
20
  from dbos._dbos_config import ConfigFile
21
- from dbos._error import DBOSException, DBOSWorkflowCancelledError
21
+ from dbos._error import DBOSAwaitedWorkflowCancelledError, DBOSException
22
22
 
23
23
 
24
24
  @pytest.mark.asyncio
@@ -492,20 +492,20 @@ async def test_workflow_timeout_async(dbos: DBOS) -> None:
492
492
  DBOS.sleep(0.1)
493
493
 
494
494
  with SetWorkflowTimeout(0.1):
495
- with pytest.raises(DBOSWorkflowCancelledError):
495
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
496
496
  await blocked_workflow()
497
497
  handle = await DBOS.start_workflow_async(blocked_workflow)
498
- with pytest.raises(DBOSWorkflowCancelledError):
498
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
499
499
  await handle.get_result()
500
500
 
501
501
  @DBOS.workflow()
502
502
  async def parent_workflow_with_timeout() -> None:
503
503
  assert assert_current_dbos_context().workflow_deadline_epoch_ms is None
504
504
  with SetWorkflowTimeout(0.1):
505
- with pytest.raises(DBOSWorkflowCancelledError):
505
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
506
506
  await blocked_workflow()
507
507
  handle = await DBOS.start_workflow_async(blocked_workflow)
508
- with pytest.raises(DBOSWorkflowCancelledError):
508
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
509
509
  await handle.get_result()
510
510
  assert assert_current_dbos_context().workflow_deadline_epoch_ms is None
511
511
 
@@ -526,7 +526,7 @@ async def test_workflow_timeout_async(dbos: DBOS) -> None:
526
526
  # Verify if a parent called with a timeout calls a blocked child
527
527
  # the deadline propagates and the children are also cancelled.
528
528
  with SetWorkflowTimeout(1.0):
529
- with pytest.raises(DBOSWorkflowCancelledError):
529
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
530
530
  await parent_workflow()
531
531
 
532
532
  with pytest.raises(Exception) as exc_info:
@@ -7,7 +7,7 @@ from typing import List
7
7
  import pytest
8
8
 
9
9
  from dbos import DBOS, Queue, SetWorkflowID
10
- from dbos._error import DBOSWorkflowCancelledError
10
+ from dbos._error import DBOSAwaitedWorkflowCancelledError
11
11
  from dbos._sys_db import StepInfo, WorkflowStatus
12
12
  from tests.conftest import queue_entries_are_cleaned_up
13
13
 
@@ -46,7 +46,7 @@ async def test_cancel_workflow_async(dbos: DBOS) -> None:
46
46
  await DBOS.cancel_workflow_async(wfid)
47
47
  workflow_event.set()
48
48
 
49
- with pytest.raises(DBOSWorkflowCancelledError):
49
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
50
50
  handle.get_result()
51
51
  assert steps_completed == 1
52
52
 
@@ -85,7 +85,7 @@ async def test_resume_workflow_async(dbos: DBOS) -> None:
85
85
  DBOS.cancel_workflow(wfid)
86
86
  workflow_event.set()
87
87
 
88
- with pytest.raises(DBOSWorkflowCancelledError):
88
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
89
89
  handle.get_result()
90
90
  assert steps_completed == 1
91
91
 
@@ -911,3 +911,30 @@ def test_class_step_without_dbos(dbos: DBOS, config: DBOSConfig) -> None:
911
911
  DBOS.launch()
912
912
 
913
913
  assert inst.step(input) == input + input
914
+
915
+
916
+ def test_class_with_only_steps(dbos: DBOS) -> None:
917
+
918
+ class StepClass:
919
+ def __init__(self, x: int) -> None:
920
+ self.x = x
921
+
922
+ @DBOS.step()
923
+ def step(self, x: int, expr: Callable[[int, int], int]) -> int:
924
+ return expr(self.x, x)
925
+
926
+ input = 5
927
+ inst = StepClass(5)
928
+
929
+ l = lambda x, y: x + y
930
+
931
+ @DBOS.workflow()
932
+ def test_workflow() -> int:
933
+ return inst.step(input, l) + inst.step(input, l)
934
+
935
+ handle = DBOS.start_workflow(test_workflow)
936
+ assert handle.get_result() == input * 4
937
+
938
+ steps = DBOS.list_workflow_steps(handle.workflow_id)
939
+ assert len(steps) == 2
940
+ assert steps[1]["output"] == steps[1]["output"] == input * 2
@@ -28,7 +28,6 @@ from dbos._error import (
28
28
  DBOSAwaitedWorkflowCancelledError,
29
29
  DBOSConflictingRegistrationError,
30
30
  DBOSMaxStepRetriesExceeded,
31
- DBOSWorkflowCancelledError,
32
31
  )
33
32
  from dbos._schemas.system_database import SystemSchema
34
33
  from dbos._sys_db import GetWorkflowsInput
@@ -1493,7 +1492,7 @@ def test_workflow_timeout(dbos: DBOS) -> None:
1493
1492
  # Verify a blocked workflow called with a timeout is cancelled
1494
1493
  wfid = str(uuid.uuid4())
1495
1494
  with SetWorkflowTimeout(0.1):
1496
- with pytest.raises(DBOSWorkflowCancelledError):
1495
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
1497
1496
  with SetWorkflowID(wfid):
1498
1497
  blocked_workflow()
1499
1498
  assert assert_current_dbos_context().workflow_deadline_epoch_ms is None
@@ -1505,7 +1504,7 @@ def test_workflow_timeout(dbos: DBOS) -> None:
1505
1504
  status.workflow_deadline_epoch_ms is not None
1506
1505
  and status.workflow_deadline_epoch_ms > start_time
1507
1506
  )
1508
- with pytest.raises(DBOSWorkflowCancelledError):
1507
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
1509
1508
  handle.get_result()
1510
1509
 
1511
1510
  # Change the workflow status to pending
@@ -1518,17 +1517,17 @@ def test_workflow_timeout(dbos: DBOS) -> None:
1518
1517
  # Recover the workflow, verify it still times out
1519
1518
  handles = DBOS._recover_pending_workflows()
1520
1519
  assert len(handles) == 1
1521
- with pytest.raises(DBOSWorkflowCancelledError):
1520
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
1522
1521
  handles[0].get_result()
1523
1522
 
1524
1523
  @DBOS.workflow()
1525
1524
  def parent_workflow_with_timeout() -> None:
1526
1525
  assert assert_current_dbos_context().workflow_deadline_epoch_ms is None
1527
1526
  with SetWorkflowTimeout(0.1):
1528
- with pytest.raises(DBOSWorkflowCancelledError):
1527
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
1529
1528
  blocked_workflow()
1530
1529
  handle = DBOS.start_workflow(blocked_workflow)
1531
- with pytest.raises(DBOSWorkflowCancelledError):
1530
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
1532
1531
  handle.get_result()
1533
1532
  assert assert_current_dbos_context().workflow_deadline_epoch_ms is None
1534
1533
 
@@ -1549,7 +1548,7 @@ def test_workflow_timeout(dbos: DBOS) -> None:
1549
1548
  # Verify if a parent called with a timeout calls a blocked child
1550
1549
  # the deadline propagates and the children are also cancelled.
1551
1550
  with SetWorkflowTimeout(1.0):
1552
- with pytest.raises(DBOSWorkflowCancelledError):
1551
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
1553
1552
  parent_workflow()
1554
1553
 
1555
1554
  with pytest.raises(DBOSAwaitedWorkflowCancelledError):
@@ -1,5 +1,4 @@
1
1
  import asyncio
2
- import logging
3
2
  import multiprocessing
4
3
  import multiprocessing.synchronize
5
4
  import os
@@ -27,7 +26,7 @@ from dbos import (
27
26
  )
28
27
  from dbos._context import assert_current_dbos_context
29
28
  from dbos._dbos import WorkflowHandleAsync
30
- from dbos._error import DBOSAwaitedWorkflowCancelledError, DBOSWorkflowCancelledError
29
+ from dbos._error import DBOSAwaitedWorkflowCancelledError
31
30
  from dbos._schemas.system_database import SystemSchema
32
31
  from dbos._sys_db import WorkflowStatusString
33
32
  from dbos._utils import GlobalParams
@@ -943,7 +942,7 @@ def test_timeout_queue(dbos: DBOS) -> None:
943
942
 
944
943
  with SetWorkflowTimeout(1.0):
945
944
  handle = DBOS.start_workflow(blocked_parent_workflow)
946
- with pytest.raises(DBOSWorkflowCancelledError):
945
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
947
946
  handle.get_result()
948
947
  with pytest.raises(DBOSAwaitedWorkflowCancelledError):
949
948
  DBOS.retrieve_workflow(child_id).get_result()
@@ -9,7 +9,7 @@ import sqlalchemy as sa
9
9
  # Public API
10
10
  from dbos import DBOS, Queue, SetWorkflowID
11
11
  from dbos._dbos import DBOSConfiguredInstance
12
- from dbos._error import DBOSWorkflowCancelledError
12
+ from dbos._error import DBOSAwaitedWorkflowCancelledError
13
13
  from dbos._schemas.application_database import ApplicationSchema
14
14
  from dbos._utils import INTERNAL_QUEUE_NAME, GlobalParams
15
15
  from dbos._workflow_commands import garbage_collect, global_timeout
@@ -52,7 +52,7 @@ def test_cancel_resume(dbos: DBOS) -> None:
52
52
  main_thread_event.wait()
53
53
  DBOS.cancel_workflow(wfid)
54
54
  workflow_event.set()
55
- with pytest.raises(DBOSWorkflowCancelledError):
55
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
56
56
  handle.get_result()
57
57
  assert steps_completed == 1
58
58
 
@@ -103,7 +103,7 @@ def test_cancel_resume_txn(dbos: DBOS) -> None:
103
103
  main_thread_event.wait()
104
104
  DBOS.cancel_workflow(wfid)
105
105
  workflow_event.set()
106
- with pytest.raises(DBOSWorkflowCancelledError):
106
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
107
107
  handle.get_result()
108
108
  assert txn_completed == 1
109
109
 
@@ -746,7 +746,7 @@ def test_global_timeout(dbos: DBOS) -> None:
746
746
 
747
747
  # Verify all workflows started before the global timeout are cancelled
748
748
  for handle in handles:
749
- with pytest.raises(DBOSWorkflowCancelledError):
749
+ with pytest.raises(DBOSAwaitedWorkflowCancelledError):
750
750
  handle.get_result()
751
751
  event.set()
752
752
  assert final_handle.get_result() is not None
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes