File tree Expand file tree Collapse file tree 2 files changed +23
-1
lines changed
Expand file tree Collapse file tree 2 files changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -44,6 +44,7 @@ class MyTaskFilter(TaskFilter):
4444 """
4545
4646 model_config = ConfigDict (extra = "allow" , arbitrary_types_allowed = True )
47+ task_owner : Annotated [str , StringConstraints (min_length = 1 , pattern = r"^[a-z_-]+$" )]
4748
4849 @model_validator (mode = "after" )
4950 def _check_valid_filters (self ) -> Self :
Original file line number Diff line number Diff line change 1+ from typing import Annotated
2+
13# pylint: disable=redefined-outer-name
24# pylint: disable=protected-access
35import pydantic
46import pytest
57from faker import Faker
6- from pydantic import BaseModel
8+ from pydantic import BaseModel , StringConstraints
79from servicelib .celery .models import TaskFilter , TaskUUID
810
911_faker = Faker ()
@@ -80,3 +82,22 @@ class MyModel(BaseModel):
8082def test_task_filter_validator_raises_on_forbidden_chars (bad_data ):
8183 with pytest .raises (pydantic .ValidationError ):
8284 TaskFilter .model_validate (bad_data )
85+
86+
87+ async def test_task_owner ():
88+ class MyFilter (TaskFilter ):
89+ extra_field : str
90+
91+ with pytest .raises (pydantic .ValidationError ):
92+ MyFilter (task_owner = "" , extra_field = "value" )
93+
94+ with pytest .raises (pydantic .ValidationError ):
95+ MyFilter (task_owner = "UPPER_CASE" , extra_field = "value" )
96+
97+ class MyNextFilter (TaskFilter ):
98+ task_owner : Annotated [
99+ str , StringConstraints (strip_whitespace = True , pattern = r"^the_task_owner$" )
100+ ]
101+
102+ with pytest .raises (pydantic .ValidationError ):
103+ MyNextFilter (task_owner = "wrong_owner" )
You can’t perform that action at this time.
0 commit comments