27 lines
758 B
Python
27 lines
758 B
Python
"""HEAD is served for GET Automation routes (contract matrix)."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from fastapi import FastAPI
|
|
from fastapi.testclient import TestClient
|
|
|
|
from app.api.middleware import HeadAsGetMiddleware
|
|
|
|
|
|
def test_head_as_get_middleware_strips_body() -> None:
|
|
app = FastAPI()
|
|
app.add_middleware(HeadAsGetMiddleware)
|
|
|
|
@app.get("/api/vcenter/vm")
|
|
def list_vms() -> list[dict[str, str]]:
|
|
return [{"vm": "vm-101", "name": "web-01"}]
|
|
|
|
client = TestClient(app)
|
|
get = client.get("/api/vcenter/vm")
|
|
assert get.status_code == 200
|
|
assert get.json()[0]["vm"] == "vm-101"
|
|
|
|
head = client.head("/api/vcenter/vm")
|
|
assert head.status_code == 200
|
|
assert head.content in (b"", None) or head.text == ""
|