darkmedia-x-api / backend /tests /test_api_server_syntax.py
cybermedia's picture
Upload folder using huggingface_hub
343eed9 verified
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