📄 test_integration.py 1,802 bytes Apr 21, 2026 📋 Raw

"""Quick integration test for the blog API endpoints."""

import sys
from pathlib import Path

Add parent to path

sys.path.insert(0, str(Path(file).parent.parent))

from fastapi.testclient import TestClient

from main import app

client = TestClient(app)

def test_health_check():
"""Test the health endpoint."""
response = client.get("/health")
assert response.status_code == 200
assert response.json()["status"] == "healthy"

def test_root_endpoint():
"""Test the root endpoint."""
response = client.get("/")
assert response.status_code == 200
assert "HoffDesk" in response.json()["message"]

def test_list_posts_empty():
"""Test listing posts when none exist."""
response = client.get("/api/blog/posts")
assert response.status_code == 200
data = response.json()
assert data["posts"] == []
assert data["total"] == 0

def test_search_empty():
"""Test search with empty query."""
response = client.get("/api/blog/search?q=test")
assert response.status_code == 200
data = response.json()
assert data["results"] == []
assert data["total"] == 0

def test_categories_empty():
"""Test listing categories when none exist."""
response = client.get("/api/blog/categories")
assert response.status_code == 200
data = response.json()
assert data["categories"] == []

def test_tags_empty():
"""Test listing tags when none exist."""
response = client.get("/api/blog/tags")
assert response.status_code == 200
data = response.json()
assert data["tags"] == []

if name == "main":
test_health_check()
test_root_endpoint()
test_list_posts_empty()
test_search_empty()
test_categories_empty()
test_tags_empty()
print("✓ All integration tests passed!")