Skip to main content

Backend Testing Guide

This guide covers how to test the Python API backend using pytest.

Overview

Backend tests use pytest to test the FastAPI application, services, and models.

Running Backend Tests

cd webapp/packages/api/user-service

# Run all tests
python -m pytest

# Run unit tests only
python -m pytest tests/unit/

# Run integration tests only
python -m pytest tests/integration/

# Run with coverage
python -m pytest --cov=. --cov-report=html

Test Structure

tests/
conftest.py # Shared fixtures
factories/ # Test data factories
agent_factory.py
user_factory.py
unit/ # Unit tests
test_user_service.py
test_user_model.py
integration/ # Integration tests
test_health_endpoint.py

Writing Tests

import pytest
from services.user_service import UserService

def test_create_user():
service = UserService()
user = service.create_user(name="Test User")
assert user.name == "Test User"

Using Factories

from tests.factories.user_factory import UserFactory

def test_user_with_factory():
user = UserFactory.create()
assert user.id is not None

Configuration

  • pytest configuration: pytest.ini
  • Coverage configuration: .coveragerc