2 changed files with 43 additions and 0 deletions
@ -0,0 +1,43 @@ |
|||||
|
import importlib |
||||
|
|
||||
|
import pytest |
||||
|
from fastapi.testclient import TestClient |
||||
|
|
||||
|
|
||||
|
@pytest.fixture( |
||||
|
name="client", |
||||
|
params=[ |
||||
|
"tutorial001_py310", |
||||
|
], |
||||
|
) |
||||
|
def get_client(request: pytest.FixtureRequest): |
||||
|
mod = importlib.import_module(f"docs_src.strict_content_type.{request.param}") |
||||
|
client = TestClient(mod.app) |
||||
|
return client |
||||
|
|
||||
|
|
||||
|
def test_lax_post_without_content_type_is_parsed_as_json(client: TestClient): |
||||
|
response = client.post( |
||||
|
"/items/", |
||||
|
content='{"name": "Foo", "price": 50.5}', |
||||
|
) |
||||
|
assert response.status_code == 200, response.text |
||||
|
assert response.json() == {"name": "Foo", "price": 50.5} |
||||
|
|
||||
|
|
||||
|
def test_lax_post_with_json_content_type(client: TestClient): |
||||
|
response = client.post( |
||||
|
"/items/", |
||||
|
json={"name": "Foo", "price": 50.5}, |
||||
|
) |
||||
|
assert response.status_code == 200, response.text |
||||
|
assert response.json() == {"name": "Foo", "price": 50.5} |
||||
|
|
||||
|
|
||||
|
def test_lax_post_with_text_plain_is_still_rejected(client: TestClient): |
||||
|
response = client.post( |
||||
|
"/items/", |
||||
|
content='{"name": "Foo", "price": 50.5}', |
||||
|
headers={"Content-Type": "text/plain"}, |
||||
|
) |
||||
|
assert response.status_code == 422, response.text |
||||
Loading…
Reference in new issue