1- from typing import Any
1+ from typing import Any , Callable , Optional , Dict
22
33from dependency_injector import providers
44
@@ -42,12 +42,34 @@ async def _async4() -> None:
4242 var2 : Any = await provider4 .async_ ()
4343
4444
45- # Test 5: to check explicit typing
45+ # Test 5: to check selector getter and setter
46+ provider5 = providers .Selector (
47+ lambda : "a" ,
48+ a = providers .Factory (object ),
49+ b = providers .Factory (object ),
50+ )
51+ selector5 : Optional [Callable [..., Any ]] = provider5 .selector
52+ provider5_after_set_selector : providers .Selector [Any ] = provider5 .set_selector (lambda : "a" )
53+
54+ # Test 6: to check providers getter and setter
55+ provider6 = providers .Selector (
56+ lambda : "a" ,
57+ a = providers .Factory (object ),
58+ b = providers .Factory (object ),
59+ )
60+ providers6 : Dict [str , providers .Provider [Any ]] = provider6 .providers
61+ provider6_after_set_providers : providers .Selector [Any ] = provider6 .set_providers (c = providers .Factory (object ))
62+
63+
64+ # Test 7: to check explicit typing: return type, getattr, getter/setter of providers and selectors
65+ provider7 = providers .Selector [bool ](lambda : "a" , a = providers .Factory (bool ), b = providers .Factory (int ))
66+ var7 : bool = provider7 ()
67+ attr7 : providers .Provider [bool ] = provider7 .a
68+
69+ selector7 : Optional [Callable [..., Any ]] = provider7 .selector
70+ provider7_after_set_selector : providers .Selector [bool ] = provider7 .set_selector (lambda : "a" )
4671
47- provider5 = providers .Selector [bool ](lambda : "a" , a = providers .Factory (bool ), b = providers .Factory (int ))
48- var5 : bool = provider5 ()
49- attr5 : providers .Provider [Any ] = provider5 .a
50- provider5_after_set_selector : providers .Selector [bool ] = provider5 .set_selector (lambda : "a" )
51- provider5_after_set_providers : providers .Selector [bool ] = provider5 .set_providers (
72+ providers7 : Dict [str , providers .Provider [bool ]] = provider7 .providers
73+ provider7_after_set_providers : providers .Selector [bool ] = provider7 .set_providers (
5274 c = providers .Factory (str )
53- ) # We don't require Provider of subclass of bool yet since Provider is invariant
75+ ) # We don't require Provider of subclass of bool yet since Provider is invariant
0 commit comments