11from dependency_injector import providers
2+ from typing_extensions import assert_type , Any
23
34
45class Animal : ...
@@ -8,29 +9,36 @@ class Cat(Animal): ...
89
910
1011# Test 1: to check Aggregate provider
11- provider1 : providers . Aggregate [ str ] = providers .Aggregate (
12+ provider1 = providers .Aggregate (
1213 a = providers .Object ("str1" ),
1314 b = providers .Object ("str2" ),
1415)
15- provider_a_1 : providers . Provider [ str ] = provider1 .a
16+ provider_a_1 = provider1 .a
1617provider_b_1 : providers .Provider [str ] = provider1 .b
17- val1 : str = provider1 ("a" )
18+ val1 = provider1 ("a" )
19+ assert_type (provider1 , providers .Aggregate [str ])
20+ assert_type (provider_a_1 , providers .Provider [str ])
21+ assert_type (provider_b_1 , providers .Provider [str ])
22+ assert_type (val1 , str )
1823
19- provider1_set_non_string_keys : providers .Aggregate [str ] = providers . Aggregate ()
24+ provider1_set_non_string_keys = providers .Aggregate [str ]()
2025provider1_set_non_string_keys .set_providers ({Cat : providers .Object ("str" )})
21- provider_set_non_string_1 : providers . Provider [ str ] = (
22- provider1_set_non_string_keys . providers [ Cat ]
23- )
26+ provider_set_non_string_1 = provider1_set_non_string_keys . providers [ Cat ]
27+ assert_type ( provider_set_non_string_1 , providers . Provider [ str ])
28+
2429
25- provider1_new_non_string_keys : providers .Aggregate [str ] = providers .Aggregate (
30+ # TODO: Change providers.Aggregate to accept Mapping? Then remove explicit typing here
31+ provider1_new_non_string_keys = providers .Aggregate [str ](
2632 {Cat : providers .Object ("str" )},
2733)
28- factory_new_non_string_1 : providers .Provider [str ] = (
29- provider1_new_non_string_keys .providers [Cat ]
30- )
34+ factory_new_non_string_1 = provider1_new_non_string_keys .providers [Cat ]
35+ assert_type (provider1_new_non_string_keys , providers .Aggregate [str ])
36+ assert_type (factory_new_non_string_1 , providers .Provider [str ])
37+
3138
3239provider1_no_explicit_typing = providers .Aggregate (a = providers .Object ("str" ))
33- provider1_no_explicit_typing_factory : providers .Provider [str ] = (
34- provider1_no_explicit_typing .providers ["a" ]
35- )
36- provider1_no_explicit_typing_object : str = provider1_no_explicit_typing ("a" )
40+ provider1_no_explicit_typing_factory = provider1_no_explicit_typing .providers ["a" ]
41+ provider1_no_explicit_typing_object = provider1_no_explicit_typing ("a" )
42+
43+ assert_type (provider1_no_explicit_typing_factory , providers .Provider [str ])
44+ assert_type (provider1_no_explicit_typing_object , str )
0 commit comments