mirror of
https://github.com/kennethreitz/pydantic.git
synced 2026-06-05 23:00:18 +00:00
594effa279
* working on core schema generation * adapting main.py * getting tests to run * fix tests * disable pyright, fix mypy * moving to class-based model generation * working on validators * change how models are created * start fixing test_main.py * fixing mypy * SelfType * recursive models working, more tests fixed * fix tests on <3.10 * get docs build to pass * starting to cleanup types.py * starting works on custom types * working on using annotated-types * using annoated types for constraints * lots of cleanup, fixing network tests * network tests passing 🎉 * working on types * working on types and cleanup * fixing UUID type, restructing again * more types and newer pydantic-core * working on Iterable * more test_types tests * support newer pydantic-core, fixing more test_types.py * working through more test_types.py * test_types.py at last passing locally 🎉 * fixing more tests in test_types.py * fix datetime_parse tests and linting * get tests running again, rename to test_datetime.py * renaming internal modules * working through mypy errors * fixing mypy * refactoring _generate_schema.py * test_main.py passing * uprev deps * fix conftest and linting? * importing Annotated * ltining * import Annotated from typing_extensions * fixing 3.7 compatibility * fixing tests on 3.9 * fix linting * fixing SecretField and 3.9 tests * customising get_type_hints * ignore warnings on 3.11 * spliting repr out of utils * removing unused bits of _repr, fix tests for 3.7 * more cleanup, removing many type aliases * clean up repr * support namedtuples and typeddicts * test is_union * removing errors, uprev pydantic-core * fix tests on 3.8 * fixing private attributes and model_post_init * renaming and cleanup * remove unnecessary PydanticMetadata inheritance * fixing forward refs and mypy tests * fix signatures, change how xfail works * revert mypy tests to 3.7 syntax * correct model title * try to fix tests * fixing ClassVar forward refs * uprev pydantic-core, new error format * add "force" argument to model_rebuild * Apply suggestions from code review Suggestions from @tiangolo and @hramezani 🙏 Co-authored-by: Hasan Ramezani <hasan.r67@gmail.com> Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com> * more suggestions from @tiangolo * extra -> json_schema_extra on Field Co-authored-by: Hasan Ramezani <hasan.r67@gmail.com> Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
39 lines
794 B
Python
39 lines
794 B
Python
from datetime import datetime
|
|
from typing import List, Optional
|
|
|
|
import pytest
|
|
|
|
from pydantic import BaseModel
|
|
from pydantic.color import Color
|
|
|
|
|
|
@pytest.fixture(scope='session', name='User')
|
|
def user_fixture():
|
|
class User(BaseModel):
|
|
id: int
|
|
name: str = 'John Doe'
|
|
signup_ts: Optional[datetime] = None
|
|
friends: List[int] = []
|
|
|
|
return User
|
|
|
|
|
|
def test_rich_repr(User):
|
|
user = User(id=22)
|
|
rich_repr = list(user.__rich_repr__())
|
|
|
|
assert rich_repr == [
|
|
('id', 22),
|
|
('name', 'John Doe'),
|
|
('signup_ts', None),
|
|
('friends', []),
|
|
]
|
|
|
|
|
|
def test_rich_repr_color(User):
|
|
|
|
color = Color((10, 20, 30, 0.1))
|
|
rich_repr = list(color.__rich_repr__())
|
|
|
|
assert rich_repr == ['#0a141e1a', ('rgb', (10, 20, 30, 0.1))]
|