1
0
Fork 0
pydantic-extra-types/tests/test_epoch.py
Daniel Baumann c0dc1fee23
Merging upstream version 2.10.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-02-05 14:09:03 +01:00

39 lines
981 B
Python

import datetime
import pytest
from pydantic_extra_types import epoch
@pytest.mark.parametrize('type_,cls_', [(int, epoch.Integer), (float, epoch.Number)], ids=['integer', 'number'])
def test_type(type_, cls_):
from pydantic import BaseModel
class A(BaseModel):
epoch: cls_
now = datetime.datetime.now(tz=datetime.timezone.utc)
ts = type_(now.timestamp())
a = A.model_validate({'epoch': ts})
v = a.model_dump()
assert v['epoch'] == ts
b = A.model_construct(epoch=now)
v = b.model_dump()
assert v['epoch'] == ts
c = A.model_validate(dict(epoch=ts))
v = c.model_dump()
assert v['epoch'] == ts
@pytest.mark.parametrize('cls_', [(epoch.Integer), (epoch.Number)], ids=['integer', 'number'])
def test_schema(cls_):
from pydantic import BaseModel
class A(BaseModel):
dt: cls_
v = A.model_json_schema()
assert (dt := v['properties']['dt'])['type'] == cls_.TYPE and dt['format'] == 'date-time'