From 1a18de1153ede1798ca449eda1f549e38246160f Mon Sep 17 00:00:00 2001 From: Yurii Motov Date: Thu, 12 Feb 2026 11:06:20 +0100 Subject: [PATCH] Use `snapshot` in tests --- tests/test_nested_annotated_in_sequence.py | 181 +++++++++++---------- 1 file changed, 94 insertions(+), 87 deletions(-) diff --git a/tests/test_nested_annotated_in_sequence.py b/tests/test_nested_annotated_in_sequence.py index 40b314559..4a725c22f 100644 --- a/tests/test_nested_annotated_in_sequence.py +++ b/tests/test_nested_annotated_in_sequence.py @@ -3,6 +3,7 @@ from typing import Annotated from dirty_equals import IsList from fastapi import FastAPI, Query from fastapi.testclient import TestClient +from inline_snapshot import snapshot from pydantic import Field MaxSizedSet = Annotated[set[str], Field(max_length=3)] @@ -33,104 +34,110 @@ def test_endpoint_valid(): def test_endpoint_too_long(): response = client.get("/", params={"foo": ["a", "b", "c", "d"]}) assert response.status_code == 422 - assert response.json() == { - "detail": [ - { - "type": "too_long", - "loc": ["query", "foo"], - "msg": "Set should have at most 3 items after validation, not more", - "input": IsList("a", "b", "c", "d", check_order=False), - "ctx": { - "actual_length": None, - "field_type": "Set", - "max_length": 3, - }, - } - ] - } + assert response.json() == snapshot( + { + "detail": [ + { + "type": "too_long", + "loc": ["query", "foo"], + "msg": "Set should have at most 3 items after validation, not more", + "input": IsList("a", "b", "c", "d", check_order=False), + "ctx": { + "actual_length": None, + "field_type": "Set", + "max_length": 3, + }, + } + ] + } + ) def test_openapi(): - assert app.openapi() == { - "components": { - "schemas": { - "HTTPValidationError": { - "properties": { - "detail": { - "items": {"$ref": "#/components/schemas/ValidationError"}, - "title": "Detail", - "type": "array", - }, - }, - "title": "HTTPValidationError", - "type": "object", - }, - "ValidationError": { - "properties": { - "ctx": {"title": "Context", "type": "object"}, - "input": {"title": "Input"}, - "loc": { - "items": { - "anyOf": [{"type": "string"}, {"type": "integer"}], + assert app.openapi() == snapshot( + { + "components": { + "schemas": { + "HTTPValidationError": { + "properties": { + "detail": { + "items": { + "$ref": "#/components/schemas/ValidationError" + }, + "title": "Detail", + "type": "array", }, - "title": "Location", - "type": "array", }, - "msg": {"title": "Message", "type": "string"}, - "type": {"title": "Error Type", "type": "string"}, + "title": "HTTPValidationError", + "type": "object", + }, + "ValidationError": { + "properties": { + "ctx": {"title": "Context", "type": "object"}, + "input": {"title": "Input"}, + "loc": { + "items": { + "anyOf": [{"type": "string"}, {"type": "integer"}], + }, + "title": "Location", + "type": "array", + }, + "msg": {"title": "Message", "type": "string"}, + "type": {"title": "Error Type", "type": "string"}, + }, + "required": ["loc", "msg", "type"], + "title": "ValidationError", + "type": "object", }, - "required": ["loc", "msg", "type"], - "title": "ValidationError", - "type": "object", }, }, - }, - "info": { - "title": "FastAPI", - "version": "0.1.0", - }, - "openapi": "3.1.0", - "paths": { - "/": { - "get": { - "operationId": "read_root__get", - "parameters": [ - { - "in": "query", - "name": "foo", - "required": False, - "schema": { - "anyOf": [ - { - "items": {"type": "string"}, - "maxItems": 3, - "type": "array", - "uniqueItems": True, - }, - {"type": "null"}, - ], - "title": "Foo", - }, - }, - ], - "responses": { - "200": { - "content": {"application/json": {"schema": {}}}, - "description": "Successful Response", - }, - "422": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError", - }, + "info": { + "title": "FastAPI", + "version": "0.1.0", + }, + "openapi": "3.1.0", + "paths": { + "/": { + "get": { + "operationId": "read_root__get", + "parameters": [ + { + "in": "query", + "name": "foo", + "required": False, + "schema": { + "anyOf": [ + { + "items": {"type": "string"}, + "maxItems": 3, + "type": "array", + "uniqueItems": True, + }, + {"type": "null"}, + ], + "title": "Foo", }, }, - "description": "Validation Error", + ], + "responses": { + "200": { + "content": {"application/json": {"schema": {}}}, + "description": "Successful Response", + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError", + }, + }, + }, + "description": "Validation Error", + }, }, + "summary": "Read Root", }, - "summary": "Read Root", }, }, - }, - } + } + )