| """ |
| Test cases for PDF Redaction API |
| """ |
| import pytest |
| from fastapi.testclient import TestClient |
| from pathlib import Path |
| import sys |
|
|
| |
| sys.path.insert(0, str(Path(__file__).parent.parent)) |
|
|
| from main import app |
|
|
| client = TestClient(app) |
|
|
|
|
| def test_health_check(): |
| """Test health check endpoint""" |
| response = client.get("/health") |
| assert response.status_code == 200 |
| data = response.json() |
| assert data["status"] == "healthy" |
| assert "model_loaded" in data |
|
|
|
|
| def test_root(): |
| """Test root endpoint""" |
| response = client.get("/") |
| assert response.status_code == 200 |
| data = response.json() |
| assert data["status"] == "healthy" |
|
|
|
|
| def test_stats(): |
| """Test stats endpoint""" |
| response = client.get("/stats") |
| assert response.status_code == 200 |
| data = response.json() |
| assert "pending_uploads" in data |
| assert "processed_files" in data |
| assert "model_loaded" in data |
|
|
|
|
| def test_redact_no_file(): |
| """Test redaction without file""" |
| response = client.post("/redact") |
| assert response.status_code == 422 |
|
|
|
|
| def test_redact_wrong_file_type(): |
| """Test redaction with wrong file type""" |
| files = {"file": ("test.txt", b"test content", "text/plain")} |
| response = client.post("/redact", files=files) |
| assert response.status_code == 400 |
|
|
|
|
| def test_download_nonexistent(): |
| """Test downloading non-existent file""" |
| response = client.get("/download/nonexistent-id") |
| assert response.status_code == 404 |
|
|
|
|
| |
| |
| |
| |
| |
|
|