from sqlmodel import create_engine
from sqlmodel.pool import StaticPool
-openapi_schema = {
- "openapi": "3.1.0",
- "info": {"title": "FastAPI", "version": "0.1.0"},
- "paths": {
- "/heroes/": {
- "get": {
- "summary": "Read Heroes",
- "operationId": "read_heroes_heroes__get",
- "responses": {
- "200": {
- "description": "Successful Response",
- "content": {
- "application/json": {
- "schema": {
- "title": "Response Read Heroes Heroes Get",
- "type": "array",
- "items": {"$ref": "#/components/schemas/HeroRead"},
- }
- }
- },
- }
- },
- },
- "post": {
- "summary": "Create Hero",
- "operationId": "create_hero_heroes__post",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {"$ref": "#/components/schemas/HeroCreate"}
- }
- },
- "required": True,
- },
- "responses": {
- "200": {
- "description": "Successful Response",
- "content": {
- "application/json": {
- "schema": {"$ref": "#/components/schemas/HeroRead"}
- }
- },
- },
- "422": {
- "description": "Validation Error",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/HTTPValidationError"
- }
- }
- },
- },
- },
- },
- }
- },
- "components": {
- "schemas": {
- "HTTPValidationError": {
- "title": "HTTPValidationError",
- "type": "object",
- "properties": {
- "detail": {
- "title": "Detail",
- "type": "array",
- "items": {"$ref": "#/components/schemas/ValidationError"},
- }
- },
- },
- "HeroCreate": {
- "title": "HeroCreate",
- "required": ["name", "secret_name"],
- "type": "object",
- "properties": {
- "name": {"title": "Name", "type": "string"},
- "secret_name": {"title": "Secret Name", "type": "string"},
- "age": {"title": "Age", "type": "integer"},
- },
- },
- "HeroRead": {
- "title": "HeroRead",
- "required": ["id", "name", "secret_name"],
- "type": "object",
- "properties": {
- "id": {"title": "Id", "type": "integer"},
- "name": {"title": "Name", "type": "string"},
- "secret_name": {"title": "Secret Name", "type": "string"},
- "age": {"title": "Age", "type": "integer"},
- },
- },
- "ValidationError": {
- "title": "ValidationError",
- "required": ["loc", "msg", "type"],
- "type": "object",
- "properties": {
- "loc": {
- "title": "Location",
- "type": "array",
- "items": {"anyOf": [{"type": "string"}, {"type": "integer"}]},
- },
- "msg": {"title": "Message", "type": "string"},
- "type": {"title": "Error Type", "type": "string"},
- },
- },
- }
- },
-}
-
def test_tutorial(clear_sqlmodel):
from docs_src.tutorial.fastapi.multiple_models import tutorial001 as mod
assert response.status_code == 200, response.text
- assert data == openapi_schema
+ assert data == {
+ "openapi": "3.1.0",
+ "info": {"title": "FastAPI", "version": "0.1.0"},
+ "paths": {
+ "/heroes/": {
+ "get": {
+ "summary": "Read Heroes",
+ "operationId": "read_heroes_heroes__get",
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "title": "Response Read Heroes Heroes Get",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/HeroRead"
+ },
+ }
+ }
+ },
+ }
+ },
+ },
+ "post": {
+ "summary": "Create Hero",
+ "operationId": "create_hero_heroes__post",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HeroCreate"
+ }
+ }
+ },
+ "required": True,
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HeroRead"
+ }
+ }
+ },
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ },
+ },
+ },
+ },
+ }
+ },
+ "components": {
+ "schemas": {
+ "HTTPValidationError": {
+ "title": "HTTPValidationError",
+ "type": "object",
+ "properties": {
+ "detail": {
+ "title": "Detail",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ValidationError"
+ },
+ }
+ },
+ },
+ "HeroCreate": {
+ "title": "HeroCreate",
+ "required": ["name", "secret_name"],
+ "type": "object",
+ "properties": {
+ "name": {"title": "Name", "type": "string"},
+ "secret_name": {"title": "Secret Name", "type": "string"},
+ "age": {"title": "Age", "type": "integer"},
+ },
+ },
+ "HeroRead": {
+ "title": "HeroRead",
+ "required": ["id", "name", "secret_name"],
+ "type": "object",
+ "properties": {
+ "id": {"title": "Id", "type": "integer"},
+ "name": {"title": "Name", "type": "string"},
+ "secret_name": {"title": "Secret Name", "type": "string"},
+ "age": {"title": "Age", "type": "integer"},
+ },
+ },
+ "ValidationError": {
+ "title": "ValidationError",
+ "required": ["loc", "msg", "type"],
+ "type": "object",
+ "properties": {
+ "loc": {
+ "title": "Location",
+ "type": "array",
+ "items": {
+ "anyOf": [{"type": "string"}, {"type": "integer"}]
+ },
+ },
+ "msg": {"title": "Message", "type": "string"},
+ "type": {"title": "Error Type", "type": "string"},
+ },
+ },
+ }
+ },
+ }
# Test inherited indexes
insp: Inspector = inspect(mod.engine)
from sqlmodel import create_engine
from sqlmodel.pool import StaticPool
-openapi_schema = {
- "openapi": "3.1.0",
- "info": {"title": "FastAPI", "version": "0.1.0"},
- "paths": {
- "/heroes/": {
- "get": {
- "summary": "Read Heroes",
- "operationId": "read_heroes_heroes__get",
- "responses": {
- "200": {
- "description": "Successful Response",
- "content": {
- "application/json": {
- "schema": {
- "title": "Response Read Heroes Heroes Get",
- "type": "array",
- "items": {"$ref": "#/components/schemas/HeroRead"},
- }
- }
- },
- }
- },
- },
- "post": {
- "summary": "Create Hero",
- "operationId": "create_hero_heroes__post",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {"$ref": "#/components/schemas/HeroCreate"}
- }
- },
- "required": True,
- },
- "responses": {
- "200": {
- "description": "Successful Response",
- "content": {
- "application/json": {
- "schema": {"$ref": "#/components/schemas/HeroRead"}
- }
- },
- },
- "422": {
- "description": "Validation Error",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/HTTPValidationError"
- }
- }
- },
- },
- },
- },
- }
- },
- "components": {
- "schemas": {
- "HTTPValidationError": {
- "title": "HTTPValidationError",
- "type": "object",
- "properties": {
- "detail": {
- "title": "Detail",
- "type": "array",
- "items": {"$ref": "#/components/schemas/ValidationError"},
- }
- },
- },
- "HeroCreate": {
- "title": "HeroCreate",
- "required": ["name", "secret_name"],
- "type": "object",
- "properties": {
- "name": {"title": "Name", "type": "string"},
- "secret_name": {"title": "Secret Name", "type": "string"},
- "age": {"title": "Age", "type": "integer"},
- },
- },
- "HeroRead": {
- "title": "HeroRead",
- "required": ["name", "secret_name", "id"],
- "type": "object",
- "properties": {
- "name": {"title": "Name", "type": "string"},
- "secret_name": {"title": "Secret Name", "type": "string"},
- "age": {"title": "Age", "type": "integer"},
- "id": {"title": "Id", "type": "integer"},
- },
- },
- "ValidationError": {
- "title": "ValidationError",
- "required": ["loc", "msg", "type"],
- "type": "object",
- "properties": {
- "loc": {
- "title": "Location",
- "type": "array",
- "items": {"anyOf": [{"type": "string"}, {"type": "integer"}]},
- },
- "msg": {"title": "Message", "type": "string"},
- "type": {"title": "Error Type", "type": "string"},
- },
- },
- }
- },
-}
-
def test_tutorial(clear_sqlmodel):
from docs_src.tutorial.fastapi.multiple_models import tutorial002 as mod
assert response.status_code == 200, response.text
- assert data == openapi_schema
+ assert data == {
+ "openapi": "3.1.0",
+ "info": {"title": "FastAPI", "version": "0.1.0"},
+ "paths": {
+ "/heroes/": {
+ "get": {
+ "summary": "Read Heroes",
+ "operationId": "read_heroes_heroes__get",
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "title": "Response Read Heroes Heroes Get",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/HeroRead"
+ },
+ }
+ }
+ },
+ }
+ },
+ },
+ "post": {
+ "summary": "Create Hero",
+ "operationId": "create_hero_heroes__post",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HeroCreate"
+ }
+ }
+ },
+ "required": True,
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HeroRead"
+ }
+ }
+ },
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ },
+ },
+ },
+ },
+ }
+ },
+ "components": {
+ "schemas": {
+ "HTTPValidationError": {
+ "title": "HTTPValidationError",
+ "type": "object",
+ "properties": {
+ "detail": {
+ "title": "Detail",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ValidationError"
+ },
+ }
+ },
+ },
+ "HeroCreate": {
+ "title": "HeroCreate",
+ "required": ["name", "secret_name"],
+ "type": "object",
+ "properties": {
+ "name": {"title": "Name", "type": "string"},
+ "secret_name": {"title": "Secret Name", "type": "string"},
+ "age": {"title": "Age", "type": "integer"},
+ },
+ },
+ "HeroRead": {
+ "title": "HeroRead",
+ "required": ["name", "secret_name", "id"],
+ "type": "object",
+ "properties": {
+ "name": {"title": "Name", "type": "string"},
+ "secret_name": {"title": "Secret Name", "type": "string"},
+ "age": {"title": "Age", "type": "integer"},
+ "id": {"title": "Id", "type": "integer"},
+ },
+ },
+ "ValidationError": {
+ "title": "ValidationError",
+ "required": ["loc", "msg", "type"],
+ "type": "object",
+ "properties": {
+ "loc": {
+ "title": "Location",
+ "type": "array",
+ "items": {
+ "anyOf": [{"type": "string"}, {"type": "integer"}]
+ },
+ },
+ "msg": {"title": "Message", "type": "string"},
+ "type": {"title": "Error Type", "type": "string"},
+ },
+ },
+ }
+ },
+ }
# Test inherited indexes
insp: Inspector = inspect(mod.engine)
from sqlmodel import create_engine
from sqlmodel.pool import StaticPool
-openapi_schema = {
- "openapi": "3.1.0",
- "info": {"title": "FastAPI", "version": "0.1.0"},
- "paths": {
- "/heroes/": {
- "get": {
- "summary": "Read Heroes",
- "operationId": "read_heroes_heroes__get",
- "responses": {
- "200": {
- "description": "Successful Response",
- "content": {
- "application/json": {
- "schema": {
- "title": "Response Read Heroes Heroes Get",
- "type": "array",
- "items": {"$ref": "#/components/schemas/HeroRead"},
- }
- }
- },
- }
- },
- },
- "post": {
- "summary": "Create Hero",
- "operationId": "create_hero_heroes__post",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {"$ref": "#/components/schemas/HeroCreate"}
- }
- },
- "required": True,
- },
- "responses": {
- "200": {
- "description": "Successful Response",
- "content": {
- "application/json": {
- "schema": {"$ref": "#/components/schemas/HeroRead"}
- }
- },
- },
- "422": {
- "description": "Validation Error",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/HTTPValidationError"
- }
- }
- },
- },
- },
- },
- },
- "/heroes/{hero_id}": {
- "get": {
- "summary": "Read Hero",
- "operationId": "read_hero_heroes__hero_id__get",
- "parameters": [
- {
- "required": True,
- "schema": {"title": "Hero Id", "type": "integer"},
- "name": "hero_id",
- "in": "path",
- }
- ],
- "responses": {
- "200": {
- "description": "Successful Response",
- "content": {
- "application/json": {
- "schema": {"$ref": "#/components/schemas/HeroRead"}
- }
- },
- },
- "422": {
- "description": "Validation Error",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/HTTPValidationError"
- }
- }
- },
- },
- },
- }
- },
- },
- "components": {
- "schemas": {
- "HTTPValidationError": {
- "title": "HTTPValidationError",
- "type": "object",
- "properties": {
- "detail": {
- "title": "Detail",
- "type": "array",
- "items": {"$ref": "#/components/schemas/ValidationError"},
- }
- },
- },
- "HeroCreate": {
- "title": "HeroCreate",
- "required": ["name", "secret_name"],
- "type": "object",
- "properties": {
- "name": {"title": "Name", "type": "string"},
- "secret_name": {"title": "Secret Name", "type": "string"},
- "age": {"title": "Age", "type": "integer"},
- },
- },
- "HeroRead": {
- "title": "HeroRead",
- "required": ["name", "secret_name", "id"],
- "type": "object",
- "properties": {
- "name": {"title": "Name", "type": "string"},
- "secret_name": {"title": "Secret Name", "type": "string"},
- "age": {"title": "Age", "type": "integer"},
- "id": {"title": "Id", "type": "integer"},
- },
- },
- "ValidationError": {
- "title": "ValidationError",
- "required": ["loc", "msg", "type"],
- "type": "object",
- "properties": {
- "loc": {
- "title": "Location",
- "type": "array",
- "items": {"anyOf": [{"type": "string"}, {"type": "integer"}]},
- },
- "msg": {"title": "Message", "type": "string"},
- "type": {"title": "Error Type", "type": "string"},
- },
- },
- }
- },
-}
-
def test_tutorial(clear_sqlmodel):
from docs_src.tutorial.fastapi.read_one import tutorial001 as mod
assert response.status_code == 200, response.text
- assert data == openapi_schema
+ assert data == {
+ "openapi": "3.1.0",
+ "info": {"title": "FastAPI", "version": "0.1.0"},
+ "paths": {
+ "/heroes/": {
+ "get": {
+ "summary": "Read Heroes",
+ "operationId": "read_heroes_heroes__get",
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "title": "Response Read Heroes Heroes Get",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/HeroRead"
+ },
+ }
+ }
+ },
+ }
+ },
+ },
+ "post": {
+ "summary": "Create Hero",
+ "operationId": "create_hero_heroes__post",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HeroCreate"
+ }
+ }
+ },
+ "required": True,
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HeroRead"
+ }
+ }
+ },
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ },
+ },
+ },
+ },
+ },
+ "/heroes/{hero_id}": {
+ "get": {
+ "summary": "Read Hero",
+ "operationId": "read_hero_heroes__hero_id__get",
+ "parameters": [
+ {
+ "required": True,
+ "schema": {"title": "Hero Id", "type": "integer"},
+ "name": "hero_id",
+ "in": "path",
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HeroRead"
+ }
+ }
+ },
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ },
+ },
+ },
+ }
+ },
+ },
+ "components": {
+ "schemas": {
+ "HTTPValidationError": {
+ "title": "HTTPValidationError",
+ "type": "object",
+ "properties": {
+ "detail": {
+ "title": "Detail",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ValidationError"
+ },
+ }
+ },
+ },
+ "HeroCreate": {
+ "title": "HeroCreate",
+ "required": ["name", "secret_name"],
+ "type": "object",
+ "properties": {
+ "name": {"title": "Name", "type": "string"},
+ "secret_name": {"title": "Secret Name", "type": "string"},
+ "age": {"title": "Age", "type": "integer"},
+ },
+ },
+ "HeroRead": {
+ "title": "HeroRead",
+ "required": ["name", "secret_name", "id"],
+ "type": "object",
+ "properties": {
+ "name": {"title": "Name", "type": "string"},
+ "secret_name": {"title": "Secret Name", "type": "string"},
+ "age": {"title": "Age", "type": "integer"},
+ "id": {"title": "Id", "type": "integer"},
+ },
+ },
+ "ValidationError": {
+ "title": "ValidationError",
+ "required": ["loc", "msg", "type"],
+ "type": "object",
+ "properties": {
+ "loc": {
+ "title": "Location",
+ "type": "array",
+ "items": {
+ "anyOf": [{"type": "string"}, {"type": "integer"}]
+ },
+ },
+ "msg": {"title": "Message", "type": "string"},
+ "type": {"title": "Error Type", "type": "string"},
+ },
+ },
+ }
+ },
+ }
from sqlmodel import create_engine
from sqlmodel.pool import StaticPool
-openapi_schema = {
- "openapi": "3.1.0",
- "info": {"title": "FastAPI", "version": "0.1.0"},
- "paths": {
- "/heroes/": {
- "get": {
- "summary": "Read Heroes",
- "operationId": "read_heroes_heroes__get",
- "responses": {
- "200": {
- "description": "Successful Response",
- "content": {
- "application/json": {
- "schema": {
- "title": "Response Read Heroes Heroes Get",
- "type": "array",
- "items": {"$ref": "#/components/schemas/Hero"},
- }
- }
- },
- }
- },
- },
- "post": {
- "summary": "Create Hero",
- "operationId": "create_hero_heroes__post",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {"$ref": "#/components/schemas/Hero"}
- }
- },
- "required": True,
- },
- "responses": {
- "200": {
- "description": "Successful Response",
- "content": {
- "application/json": {
- "schema": {"$ref": "#/components/schemas/Hero"}
- }
- },
- },
- "422": {
- "description": "Validation Error",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/HTTPValidationError"
- }
- }
- },
- },
- },
- },
- }
- },
- "components": {
- "schemas": {
- "HTTPValidationError": {
- "title": "HTTPValidationError",
- "type": "object",
- "properties": {
- "detail": {
- "title": "Detail",
- "type": "array",
- "items": {"$ref": "#/components/schemas/ValidationError"},
- }
- },
- },
- "Hero": {
- "title": "Hero",
- "required": ["name", "secret_name"],
- "type": "object",
- "properties": {
- "id": {"title": "Id", "type": "integer"},
- "name": {"title": "Name", "type": "string"},
- "secret_name": {"title": "Secret Name", "type": "string"},
- "age": {"title": "Age", "type": "integer"},
- },
- },
- "ValidationError": {
- "title": "ValidationError",
- "required": ["loc", "msg", "type"],
- "type": "object",
- "properties": {
- "loc": {
- "title": "Location",
- "type": "array",
- "items": {"anyOf": [{"type": "string"}, {"type": "integer"}]},
- },
- "msg": {"title": "Message", "type": "string"},
- "type": {"title": "Error Type", "type": "string"},
- },
- },
- }
- },
-}
-
def test_tutorial(clear_sqlmodel):
from docs_src.tutorial.fastapi.response_model import tutorial001 as mod
assert response.status_code == 200, response.text
- assert data == openapi_schema
+ assert data == {
+ "openapi": "3.1.0",
+ "info": {"title": "FastAPI", "version": "0.1.0"},
+ "paths": {
+ "/heroes/": {
+ "get": {
+ "summary": "Read Heroes",
+ "operationId": "read_heroes_heroes__get",
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "title": "Response Read Heroes Heroes Get",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Hero"
+ },
+ }
+ }
+ },
+ }
+ },
+ },
+ "post": {
+ "summary": "Create Hero",
+ "operationId": "create_hero_heroes__post",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {"$ref": "#/components/schemas/Hero"}
+ }
+ },
+ "required": True,
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {"$ref": "#/components/schemas/Hero"}
+ }
+ },
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ },
+ },
+ },
+ },
+ }
+ },
+ "components": {
+ "schemas": {
+ "HTTPValidationError": {
+ "title": "HTTPValidationError",
+ "type": "object",
+ "properties": {
+ "detail": {
+ "title": "Detail",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ValidationError"
+ },
+ }
+ },
+ },
+ "Hero": {
+ "title": "Hero",
+ "required": ["name", "secret_name"],
+ "type": "object",
+ "properties": {
+ "id": {"title": "Id", "type": "integer"},
+ "name": {"title": "Name", "type": "string"},
+ "secret_name": {"title": "Secret Name", "type": "string"},
+ "age": {"title": "Age", "type": "integer"},
+ },
+ },
+ "ValidationError": {
+ "title": "ValidationError",
+ "required": ["loc", "msg", "type"],
+ "type": "object",
+ "properties": {
+ "loc": {
+ "title": "Location",
+ "type": "array",
+ "items": {
+ "anyOf": [{"type": "string"}, {"type": "integer"}]
+ },
+ },
+ "msg": {"title": "Message", "type": "string"},
+ "type": {"title": "Error Type", "type": "string"},
+ },
+ },
+ }
+ },
+ }
from sqlmodel import create_engine
from sqlmodel.pool import StaticPool
-openapi_schema = {
- "openapi": "3.1.0",
- "info": {"title": "FastAPI", "version": "0.1.0"},
- "paths": {
- "/heroes/": {
- "get": {
- "summary": "Read Heroes",
- "operationId": "read_heroes_heroes__get",
- "responses": {
- "200": {
- "description": "Successful Response",
- "content": {"application/json": {"schema": {}}},
- }
- },
- },
- "post": {
- "summary": "Create Hero",
- "operationId": "create_hero_heroes__post",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {"$ref": "#/components/schemas/Hero"}
- }
- },
- "required": True,
- },
- "responses": {
- "200": {
- "description": "Successful Response",
- "content": {"application/json": {"schema": {}}},
- },
- "422": {
- "description": "Validation Error",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/HTTPValidationError"
- }
- }
- },
- },
- },
- },
- }
- },
- "components": {
- "schemas": {
- "HTTPValidationError": {
- "title": "HTTPValidationError",
- "type": "object",
- "properties": {
- "detail": {
- "title": "Detail",
- "type": "array",
- "items": {"$ref": "#/components/schemas/ValidationError"},
- }
- },
- },
- "Hero": {
- "title": "Hero",
- "required": ["name", "secret_name"],
- "type": "object",
- "properties": {
- "id": {"title": "Id", "type": "integer"},
- "name": {"title": "Name", "type": "string"},
- "secret_name": {"title": "Secret Name", "type": "string"},
- "age": {"title": "Age", "type": "integer"},
- },
- },
- "ValidationError": {
- "title": "ValidationError",
- "required": ["loc", "msg", "type"],
- "type": "object",
- "properties": {
- "loc": {
- "title": "Location",
- "type": "array",
- "items": {"anyOf": [{"type": "string"}, {"type": "integer"}]},
- },
- "msg": {"title": "Message", "type": "string"},
- "type": {"title": "Error Type", "type": "string"},
- },
- },
- }
- },
-}
-
def test_tutorial(clear_sqlmodel):
from docs_src.tutorial.fastapi.simple_hero_api import tutorial001 as mod
assert response.status_code == 200, response.text
- assert data == openapi_schema
+ assert data == {
+ "openapi": "3.1.0",
+ "info": {"title": "FastAPI", "version": "0.1.0"},
+ "paths": {
+ "/heroes/": {
+ "get": {
+ "summary": "Read Heroes",
+ "operationId": "read_heroes_heroes__get",
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {"application/json": {"schema": {}}},
+ }
+ },
+ },
+ "post": {
+ "summary": "Create Hero",
+ "operationId": "create_hero_heroes__post",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {"$ref": "#/components/schemas/Hero"}
+ }
+ },
+ "required": True,
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {"application/json": {"schema": {}}},
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ },
+ },
+ },
+ },
+ }
+ },
+ "components": {
+ "schemas": {
+ "HTTPValidationError": {
+ "title": "HTTPValidationError",
+ "type": "object",
+ "properties": {
+ "detail": {
+ "title": "Detail",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ValidationError"
+ },
+ }
+ },
+ },
+ "Hero": {
+ "title": "Hero",
+ "required": ["name", "secret_name"],
+ "type": "object",
+ "properties": {
+ "id": {"title": "Id", "type": "integer"},
+ "name": {"title": "Name", "type": "string"},
+ "secret_name": {"title": "Secret Name", "type": "string"},
+ "age": {"title": "Age", "type": "integer"},
+ },
+ },
+ "ValidationError": {
+ "title": "ValidationError",
+ "required": ["loc", "msg", "type"],
+ "type": "object",
+ "properties": {
+ "loc": {
+ "title": "Location",
+ "type": "array",
+ "items": {
+ "anyOf": [{"type": "string"}, {"type": "integer"}]
+ },
+ },
+ "msg": {"title": "Message", "type": "string"},
+ "type": {"title": "Error Type", "type": "string"},
+ },
+ },
+ }
+ },
+ }