Spaces:
Sleeping
Sleeping
Download tests/test_api.py from kshitiz14/product_attribute: direct link, hf CLI and curl.
- Browser
- Download file 1.87 kB
-
https://huggingface.co/spaces/kshitiz14/product_attribute/resolve/main/tests/test_api.py
- Command line
-
hf download hf://spaces/kshitiz14/product_attribute/tests/test_api.py
-
curl -L -o test_api.py https://huggingface.co/spaces/kshitiz14/product_attribute/resolve/main/tests/test_api.py
1.87 kB
| """ | |
| Basic tests for the extraction pipeline and API. | |
| Run with: pytest tests/ -v (from repo root, with src/ on PYTHONPATH) | |
| """ | |
| import sys | |
| import os | |
| sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "src")) | |
| from fastapi.testclient import TestClient | |
| from api import app | |
| from rules_extractor import extract_attributes_rules | |
| client = TestClient(app) | |
| def test_health(): | |
| r = client.get("/health") | |
| assert r.status_code == 200 | |
| assert r.json()["status"] == "ok" | |
| def test_extract_basic(): | |
| r = client.post("/extract", json={ | |
| "text": "Lace mermaid wedding dress with long sleeves and scalloped hem" | |
| }) | |
| assert r.status_code == 200 | |
| body = r.json() | |
| attrs = body["attributes"] | |
| assert "mermaid" in attrs["silhouette"] | |
| assert "lace" in attrs["fabric"] | |
| assert "long sleeves" in attrs["sleeve"] | |
| assert "wedding dress" in attrs["category"] | |
| def test_extract_empty_text_rejected(): | |
| r = client.post("/extract", json={"text": ""}) | |
| assert r.status_code == 422 | |
| def test_extract_invalid_mode(): | |
| r = client.post("/extract", json={"text": "a dress", "mode": "bogus"}) | |
| assert r.status_code == 400 | |
| def test_extract_multi_color(): | |
| r = client.post("/extract", json={ | |
| "text": "Floor length chiffon bridesmaid dress with pleated bodice and V neckline available in sage and dusty blue" | |
| }) | |
| attrs = r.json()["attributes"] | |
| assert set(["sage", "dusty blue"]).issubset(set(attrs["color"])) | |
| assert attrs["length"] == ["floor length"] | |
| def test_rules_extractor_directly(): | |
| result = extract_attributes_rules( | |
| "Velvet winter formal dress with square neckline and puff sleeves" | |
| ) | |
| assert result["fabric"] == ["velvet"] | |
| assert result["neckline"] == ["square neckline"] | |
| assert result["sleeve"] == ["puff sleeves"] | |
| assert result["category"] == ["formal dress"] | |