1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
import sys
from unittest.mock import patch
import pytest
from ninja import NinjaAPI
from ninja.testing import TestClient
def test_examples():
api = NinjaAPI()
with patch("builtins.api", api, create=True):
import docs.src.tutorial.form.code01 # noqa: F401
import docs.src.tutorial.form.code02 # noqa: F401
client = TestClient(api)
assert client.post(
"/items", data={"name": "Katana", "price": 299.00, "quantity": 10}
).json() == {
"name": "Katana",
"description": None,
"price": 299.0,
"quantity": 10,
}
assert client.post(
"/items/1?q=test", data={"name": "Katana", "price": 299.00, "quantity": 10}
).json() == {
"item_id": 1,
"q": "test",
"item": {
"name": "Katana",
"description": None,
"price": 299.0,
"quantity": 10,
},
}
@pytest.mark.skipif(sys.version_info[:2] < (3, 9), reason="requires py3.9+")
def test_examples_extra():
api = NinjaAPI()
with patch("builtins.api", api, create=True):
import docs.src.tutorial.form.code03 # noqa: F401
client = TestClient(api)
assert client.post(
"/items-blank-default",
data={"name": "Katana", "price": "", "quantity": "", "in_stock": ""},
).json() == {
"name": "Katana",
"description": None,
"in_stock": True,
"price": 0.0,
"quantity": 0,
}
|