fix(tests): fix pydantic warning about deprecated fields

Calling `inspect.getmembers()` on a pydantic field results in `getattr` being called on all members of the field. Pydantic has some attrs that are marked deprecated.

In our test suite, we do not filter deprecation warnings, so this is surfaced.

Use a context manager to ignore deprecation warnings when calling the function.
This commit is contained in:
psychedelicious 2023-12-09 14:31:46 +11:00
parent 9661fa5f76
commit 0ac33f36ef

View File

@ -4,6 +4,7 @@ from __future__ import annotations
import inspect import inspect
import re import re
import warnings
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from enum import Enum from enum import Enum
from inspect import signature from inspect import signature
@ -709,8 +710,10 @@ class _Model(BaseModel):
pass pass
# Get all pydantic model attrs, methods, etc with warnings.catch_warnings():
RESERVED_PYDANTIC_FIELD_NAMES = {m[0] for m in inspect.getmembers(_Model())} warnings.simplefilter("ignore", category=DeprecationWarning)
# Get all pydantic model attrs, methods, etc
RESERVED_PYDANTIC_FIELD_NAMES = {m[0] for m in inspect.getmembers(_Model())}
def validate_fields(model_fields: dict[str, FieldInfo], model_type: str) -> None: def validate_fields(model_fields: dict[str, FieldInfo], model_type: str) -> None: