Skip to content

Commit 05b973b

Browse files
authored
Fix ensure_ascii option for TypeAdapter (pydantic#12302)
1 parent d83910e commit 05b973b

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

pydantic/type_adapter.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,7 @@ def dump_json(
634634
return self.serializer.to_json(
635635
instance,
636636
indent=indent,
637+
ensure_ascii=ensure_ascii,
637638
include=include,
638639
exclude=exclude,
639640
by_alias=by_alias,

tests/test_json.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
NameEmail,
2626
PlainSerializer,
2727
RootModel,
28+
TypeAdapter,
2829
)
2930
from pydantic._internal._config import ConfigWrapper
3031
from pydantic._internal._generate_schema import GenerateSchema
@@ -35,7 +36,6 @@
3536
field_serializer,
3637
)
3738
from pydantic.json_schema import JsonSchemaValue
38-
from pydantic.type_adapter import TypeAdapter
3939
from pydantic.types import DirectoryPath, FilePath, SecretBytes, SecretStr, condecimal
4040

4141
try:
@@ -574,3 +574,15 @@ class M(BaseModel):
574574
m_encoded = f'{{"key":{r_encoded}}}'
575575
assert m.model_dump_json() == m_encoded
576576
assert M.model_validate_json(m_encoded) == m
577+
578+
579+
# Complete tests exist in pydantic-core:
580+
def test_json_ensure_ascii() -> None:
581+
ta = TypeAdapter(str)
582+
583+
assert ta.dump_json('à', ensure_ascii=True) == b'"\\u00e0"'
584+
585+
class Model(BaseModel):
586+
f: str
587+
588+
assert Model(f='à').model_dump_json(ensure_ascii=True) == '{"f":"\\u00e0"}'

0 commit comments

Comments
 (0)