Spaces:
Sleeping
Sleeping
File size: 3,256 Bytes
343eed9 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | import pytest
import subprocess
import sys
from pathlib import Path
API_SERVER_PATH = Path(__file__).parent.parent / "api_server.py"
class TestApiServerSyntax:
def test_api_server_syntax(self):
"""Test that api_server.py has valid Python syntax."""
result = subprocess.run(
[sys.executable, "-m", "py_compile", str(API_SERVER_PATH)],
capture_output=True,
text=True
)
assert result.returncode == 0, f"Syntax error in api_server.py:\n{result.stderr}"
def test_api_server_can_parse(self):
"""Test that api_server.py can be parsed."""
result = subprocess.run(
[sys.executable, "-c", f"import ast; ast.parse(open('{API_SERVER_PATH}').read())"],
capture_output=True,
text=True
)
assert result.returncode == 0, f"Parse error:\n{result.stderr}"
class TestModelUsedAssignment:
def test_model_used_logic(self):
"""Test the model_used assignment logic."""
test_cases = [
{"fallback_to_flux": True, "image_model": "flux", "expected": "flux"},
{"fallback_to_flux": True, "image_model": "ssd", "expected": "ssd"},
{"fallback_to_flux": False, "image_model": "flux", "expected": "flux"},
{"fallback_to_flux": False, "image_model": "ssd", "expected": "ssd"},
{"fallback_to_flux": True, "image_model": None, "expected": None},
{"fallback_to_flux": False, "image_model": None, "expected": None},
]
for tc in test_cases:
fallback = tc["fallback_to_flux"]
img_model = tc["image_model"]
expected = tc["expected"]
result = img_model if not fallback or img_model == "flux" else img_model
assert result == expected, f"Failed for {tc}: got {result}, expected {expected}"
def test_model_used_fallback_to_flux(self):
"""Test that fallback to flux works correctly."""
image_model = "ssd"
fallback_to_flux = True
result = image_model if not fallback_to_flux or image_model == "flux" else image_model
assert result == "ssd"
image_model = "flux"
result = image_model if not fallback_to_flux or image_model == "flux" else image_model
assert result == "flux"
class TestStoriesStructure:
def test_stories_response_structure(self):
"""Test that /api/stories returns expected structure."""
import requests
resp = requests.get("https://cybermedia-darkmedia-x-api.hf.space/api/stories", timeout=10)
assert resp.status_code == 200
data = resp.json()
assert "stories" in data
assert isinstance(data["stories"], list)
for story in data["stories"]:
assert "id" in story
assert "title" in story
assert "image_count" in story
assert "image_model" in story
def test_stories_endpoint_count(self):
"""Test that stories endpoint returns stories."""
import requests
resp = requests.get("https://cybermedia-darkmedia-x-api.hf.space/api/stories", timeout=10)
data = resp.json()
assert len(data["stories"]) > 0 |