55import pydantic
66import pytest
77from faker import Faker
8- from pydantic import BaseModel , StringConstraints
8+ from pydantic import StringConstraints
99from servicelib .celery .models import OwnerMetadata , TaskUUID
1010
1111_faker = Faker ()
@@ -20,6 +20,7 @@ def task_filter_data() -> dict[str, str | int | bool | None | list[str]]:
2020 "none" : None ,
2121 "uuid" : _faker .uuid4 (),
2222 "list" : [_faker .word () for _ in range (3 )],
23+ "owner" : _faker .word ().lower (),
2324 }
2425
2526
@@ -33,12 +34,9 @@ async def test_task_filter_serialization(
3334
3435async def test_task_filter_sorting_key_not_serialized ():
3536
36- keys = ["a" , "b" ]
37+ keys = ["a" , "b" , "owner" ]
3738 task_filter = OwnerMetadata .model_validate (
38- {
39- "a" : _faker .random_int (),
40- "b" : _faker .word (),
41- }
39+ {"a" : _faker .random_int (), "b" : _faker .word (), "owner" : _faker .word ().lower ()}
4240 )
4341 expected_key = ":" .join ([f"{ k } ={ getattr (task_filter , k )} " for k in sorted (keys )])
4442 assert task_filter ._build_task_id_prefix () == expected_key
@@ -55,16 +53,17 @@ async def test_task_filter_task_uuid(
5553
5654async def test_create_task_filter_from_task_id ():
5755
58- class MyModel (BaseModel ):
56+ class MyModel (OwnerMetadata ):
5957 _int : int
6058 _bool : bool
6159 _str : str
6260 _list : list [str ]
6361
64- mymodel = MyModel (_int = 1 , _bool = True , _str = "test" , _list = ["a" , "b" ])
65- task_filter = OwnerMetadata .model_validate (mymodel .model_dump ())
62+ mymodel = MyModel (
63+ _int = 1 , _bool = True , _str = "test" , _list = ["a" , "b" ], owner = "myowner"
64+ )
6665 task_uuid = TaskUUID (_faker .uuid4 ())
67- task_id = task_filter .create_task_id (task_uuid )
66+ task_id = mymodel .create_task_id (task_uuid )
6867 assert OwnerMetadata .recreate_as_model (task_id = task_id , schema = MyModel ) == mymodel
6968
7069
0 commit comments