Browse Source

Restore and udpate test for coverage in jsonable_encoder

pull/14609/head
Sebastián Ramírez 7 months ago
parent
commit
01289a46fc
  1. 20
      tests/test_jsonable_encoder.py

20
tests/test_jsonable_encoder.py

@ -5,7 +5,7 @@ from decimal import Decimal
from enum import Enum
from math import isinf, isnan
from pathlib import PurePath, PurePosixPath, PureWindowsPath
from typing import Optional
from typing import Optional, TypedDict
import pytest
from fastapi._compat import Undefined
@ -202,6 +202,24 @@ def test_encode_model_with_default():
}
def test_custom_encoders():
class safe_datetime(datetime):
pass
class MyDict(TypedDict):
dt_field: safe_datetime
instance = MyDict(dt_field=safe_datetime.now())
encoded_instance = jsonable_encoder(
instance, custom_encoder={safe_datetime: lambda o: o.strftime("%H:%M:%S")}
)
assert encoded_instance["dt_field"] == instance["dt_field"].strftime("%H:%M:%S")
encoded_instance2 = jsonable_encoder(instance)
assert encoded_instance2["dt_field"] == instance["dt_field"].isoformat()
def test_custom_enum_encoders():
def custom_enum_encoder(v: Enum):
return v.value.lower()

Loading…
Cancel
Save