Files
antigravity-skills-reference/web-app/public/skills/dbos-python/references/test-fixtures.md

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