| import pytest
|
| from fastapi.testclient import TestClient
|
| from app.main import app
|
|
|
| client = TestClient(app)
|
|
|
|
|
| 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
|
|
|
| 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"]
|
|
|