Files
antigravity-skills-reference/skills/dbos-python/references/test-fixtures.md
Max dml 7e5abd504f feat: add DBOS skills for TypeScript, Python, and Go (#94)
Add three DBOS SDK skills with reference documentation for building
reliable, fault-tolerant applications with durable workflows.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 23:26:51 +01:00

1.4 KiB

title, impact, impactDescription, tags
title impact impactDescription tags
Use Proper Test Fixtures for DBOS LOW-MEDIUM Ensures clean state between tests testing, pytest, fixtures, reset

Use Proper Test Fixtures for DBOS

Use pytest fixtures to properly reset DBOS state between tests.

Incorrect (no reset between tests):

def test_workflow_one():
    DBOS.launch()
    result = my_workflow()
    assert result == "expected"

def test_workflow_two():
    # DBOS state from previous test!
    result = another_workflow()

Correct (reset fixture):

import pytest
import os
from dbos import DBOS, DBOSConfig

@pytest.fixture()
def reset_dbos():
    DBOS.destroy()
    config: DBOSConfig = {
        "name": "test-app",
        "database_url": os.environ.get("TESTING_DATABASE_URL"),
    }
    DBOS(config=config)
    DBOS.reset_system_database()
    DBOS.launch()
    yield
    DBOS.destroy()

def test_workflow_one(reset_dbos):
    result = my_workflow()
    assert result == "expected"

def test_workflow_two(reset_dbos):
    # Clean DBOS state
    result = another_workflow()
    assert result == "other_expected"

The fixture:

  1. Destroys any existing DBOS instance
  2. Creates fresh configuration
  3. Resets the system database
  4. Launches DBOS
  5. Yields for test execution
  6. Cleans up after test

Reference: Testing DBOS