VTO / tests /api /v1 /test_mannequin.py
Akshajzclap's picture
Upload 89 files
bd55a25 verified
import pytest
from fastapi.testclient import TestClient
from app.main import app
client = TestClient(app)
# Replace with your actual image file path
TEST_IMAGE_PATH = "test_images/dress.jpg"
INVALID_FILE_PATH = "test_images/test.txt"
def test_mannequin_success():
with open(TEST_IMAGE_PATH, "rb") as f:
files = {
"garment_images": ("test_image.jpg", f, "image/jpeg")
}
response = client.post("/api/v1/mannequin", files=files)
assert response.status_code == 200
assert response.headers["content-type"] == "image/png"
def test_mannequin_invalid_file_type():
with open(INVALID_FILE_PATH, "rb") as f:
files = {
"garment_images": ("test.txt", f, "text/plain")
}
response = client.post("/api/v1/mannequin", files=files)
assert response.status_code == 400
assert "Invalid file type" in response.json()["detail"]
def test_mannequin_missing_file():
response = client.post("/api/v1/mannequin")
assert response.status_code == 422 # FastAPI validation error
def test_mannequin_multiple_files():
with open(TEST_IMAGE_PATH, "rb") as f1, open(TEST_IMAGE_PATH, "rb") as f2:
files = [
("garment_images", ("test_image1.jpg", f1, "image/jpeg")),
("garment_images", ("test_image2.jpg", f2, "image/jpeg"))
]
response = client.post("/api/v1/mannequin", files=files)
assert response.status_code == 400
assert "Exactly one garment images are required" in response.json()["detail"]