Kiy-K's picture
Restore full Space app with bucket model support
31c8075 verified
Raw
History Blame Contribute Delete
2.53 kB
from fastapi import FastAPI
import app as app_module
def test_app_py_exports_unified_fastapi_app() -> None:
assert isinstance(app_module.app, FastAPI)
def test_app_py_exports_gradio_demo_for_space_sdk() -> None:
assert type(app_module.demo).__name__ == "Blocks"
def test_app_py_serves_api_and_gradio_from_one_asgi_app() -> None:
route_paths = {getattr(route, "path", "") for route in app_module.app.routes}
assert "/health" in route_paths
assert "/runs" in route_paths
assert "" in route_paths
def test_app_py_defaults_to_spaces_friendly_bind(monkeypatch) -> None:
monkeypatch.delenv("GRADIO_SERVER_NAME", raising=False)
monkeypatch.delenv("GRADIO_SERVER_PORT", raising=False)
monkeypatch.delenv("HOST", raising=False)
monkeypatch.delenv("PORT", raising=False)
assert app_module.server_config() == {"host": "0.0.0.0", "port": 7860}
assert app_module.gradio_launch_config() == {"server_name": "0.0.0.0", "server_port": 7860}
def test_app_py_does_not_self_bind_under_gradio_space(monkeypatch) -> None:
monkeypatch.setenv("SPACE_ID", "build-small-hackathon/agent-swarm-workbench")
monkeypatch.setenv("SPACE_SDK", "gradio")
assert app_module.should_self_launch() is False
assert app_module.should_launch_gradio_space() is True
def test_app_py_does_not_self_bind_under_space_without_sdk_env(monkeypatch) -> None:
monkeypatch.setenv("SPACE_ID", "build-small-hackathon/agent-swarm-workbench")
monkeypatch.delenv("SPACE_SDK", raising=False)
monkeypatch.delenv("HF_SPACE_SDK", raising=False)
assert app_module.should_self_launch() is False
def test_app_py_can_force_self_launch(monkeypatch) -> None:
monkeypatch.setenv("SPACE_ID", "build-small-hackathon/agent-swarm-workbench")
monkeypatch.setenv("FORCE_SELF_LAUNCH", "1")
assert app_module.should_self_launch() is True
assert app_module.should_launch_gradio_space() is False
def test_app_py_self_binds_outside_gradio_space(monkeypatch) -> None:
monkeypatch.delenv("SPACE_ID", raising=False)
monkeypatch.delenv("SPACE_SDK", raising=False)
monkeypatch.delenv("FORCE_SELF_LAUNCH", raising=False)
assert app_module.should_self_launch() is True
assert app_module.should_launch_gradio_space() is False
def test_space_metadata_uses_gradio_sdk_app_py() -> None:
readme = open("README.md", encoding="utf-8").read()
assert "sdk: gradio" in readme
assert "app_file: app.py" in readme
assert "sdk: docker" not in readme.split("---", 2)[1]