import importlib.util
import pytest
import requests
import tests.common
from tests.common import eq, stop_server
server = None
def setup():
if importlib.util.find_spec("fastapi") is None:
pytest.skip("fastapi is not installed")
global server
server = tests.common.start_server("tests/s_fastapi_smoke.py")
if not server:
return 1
return 0
def setup_module(module):
assert setup() == 0
def test_fastapi_http():
r = requests.get("http://localhost:8080/")
eq(r.status_code, 200)
eq(r.json(), {"ok": True})
r = requests.post("http://localhost:8080/echo", data=b"fastapi")
eq(r.status_code, 200)
eq(r.text, "fastapi")
def teardown():
global server
proc = server
server = None
stop_server(proc)
if proc is not None:
try:
proc.wait(timeout=2)
except Exception:
pass
if proc.stdout:
proc.stdout.close()
if proc.stderr:
proc.stderr.close()
def teardown_module(module):
teardown()