Coverage for tests / test_advanced / test_datetime / test_tutorial003.py: 100%

16 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2026-11-09 00:02 +0000

1import importlib 1abcdefghi

2from datetime import datetime, timezone 1abcdefghi

3from types import ModuleType 1abcdefghi

4 

5import pytest 1abcdefghi

6from sqlmodel import SQLModel 1abcdefghi

7 

8from ...conftest import PrintMock 1abcdefghi

9 

10 

11@pytest.fixture( 1abcdefghi

12 name="mod", 

13 params=[ 

14 pytest.param("tutorial003_py310"), 

15 ], 

16) 

17def get_module(request: pytest.FixtureRequest) -> ModuleType: 1abcdefghi

18 return importlib.import_module(f"docs_src.advanced.datetime.{request.param}") 1abcdefghi

19 

20 

21def test_tutorial(print_mock: PrintMock, mod: ModuleType) -> None: 1abcdefghi

22 mod.main() 1jklmnopqr

23 assert print_mock.calls == [ 1jklmnopqr

24 ["Event:", {"id": None, "created_at": datetime(2026, 1, 1, 12)}] 

25 ] 

26 

27 aware = datetime(2026, 1, 1, 12, tzinfo=timezone.utc) 1jklmnopqr

28 assert mod.Event.model_validate({"created_at": aware}).created_at == aware 1jklmnopqr

29 

30 table = SQLModel.metadata.tables["event"] 1jklmnopqr

31 assert table.c.created_at.type.timezone is False 1jklmnopqr