@@ -88,39 +88,45 @@ def test_invalid_types_generate_type_mismatch_results(provider: LaunchDarklyProv
8888
8989
9090@pytest .mark .parametrize (
91- "default_value,return_value,expected_value,method_name" ,
92- [
93- pytest .param (True , False , False , 'resolve_boolean_details' ),
94- pytest .param (False , True , True , 'resolve_boolean_details' ),
95- pytest .param (False , 1 , False , 'resolve_boolean_details' ),
96- pytest .param (False , "True" , False , 'resolve_boolean_details' ),
97- pytest .param (True , [], True , 'resolve_boolean_details' ),
98-
99- pytest .param ('default-string' , 'return-string' , 'return-string' , 'resolve_string_details' ),
100- pytest .param ('default-string' , 1 , 'default-string' , 'resolve_string_details' ),
101- pytest .param ('default-string' , True , 'default-string' , 'resolve_string_details' ),
102-
103- pytest .param (1 , 2 , 2 , 'resolve_integer_details' ),
104- pytest .param (1 , True , 1 , 'resolve_integer_details' ),
105- pytest .param (1 , False , 1 , 'resolve_integer_details' ),
106- pytest .param (1 , "" , 1 , 'resolve_integer_details' ),
107-
108- pytest .param (1.0 , 2.0 , 2.0 , 'resolve_float_details' ),
109- pytest .param (1.0 , 2 , 2.0 , 'resolve_float_details' ),
110- pytest .param (1.0 , True , 1.0 , 'resolve_float_details' ),
111- pytest .param (1.0 , 'return-string' , 1.0 , 'resolve_float_details' ),
112-
113- pytest .param (['default-value' ], ['return-string' ], ['return-string' ], 'resolve_object_details' ),
114- pytest .param (['default-value' ], True , ['default-value' ], 'resolve_object_details' ),
115- pytest .param (['default-value' ], 1 , ['default-value' ], 'resolve_object_details' ),
116- pytest .param (['default-value' ], 'return-string' , ['default-value' ], 'resolve_object_details' ),
91+ "default_value,return_value,expected_value,expected_type,method_name" ,
92+ [
93+ pytest .param (True , False , False , bool , 'resolve_boolean_details' ),
94+ pytest .param (False , True , True , bool , 'resolve_boolean_details' ),
95+ pytest .param (False , 1 , False , bool , 'resolve_boolean_details' ),
96+ pytest .param (False , "True" , False , bool , 'resolve_boolean_details' ),
97+ pytest .param (True , [], True , bool , 'resolve_boolean_details' ),
98+
99+ pytest .param ('default-string' , 'return-string' , 'return-string' , str , 'resolve_string_details' ),
100+ pytest .param ('default-string' , 1 , 'default-string' , str , 'resolve_string_details' ),
101+ pytest .param ('default-string' , True , 'default-string' , str , 'resolve_string_details' ),
102+
103+ pytest .param (1 , 2 , 2 , int , 'resolve_integer_details' ),
104+ pytest .param (1 , True , 1 , int , 'resolve_integer_details' ),
105+ pytest .param (1 , False , 1 , int , 'resolve_integer_details' ),
106+ pytest .param (1 , "" , 1 , int , 'resolve_integer_details' ),
107+
108+ pytest .param (1.0 , 2.0 , 2.0 , float , 'resolve_float_details' ),
109+ pytest .param (1.0 , 2 , 2.0 , float , 'resolve_float_details' ),
110+ pytest .param (1.0 , True , 1.0 , float , 'resolve_float_details' ),
111+ pytest .param (1.0 , 'return-string' , 1.0 , float , 'resolve_float_details' ),
112+
113+ pytest .param (['default-value' ], ['return-string' ], ['return-string' ], list , 'resolve_object_details' ),
114+ pytest .param (['default-value' ], True , ['default-value' ], list , 'resolve_object_details' ),
115+ pytest .param (['default-value' ], 1 , ['default-value' ], list , 'resolve_object_details' ),
116+ pytest .param (['default-value' ], 'return-string' , ['default-value' ], list , 'resolve_object_details' ),
117+
118+ pytest .param ({'key' : 'default' }, {'key' : 'return' }, {'key' : 'return' }, dict , 'resolve_object_details' ),
119+ pytest .param ({'key' : 'default' }, True , {'key' : 'default' }, dict , 'resolve_object_details' ),
120+ pytest .param ({'key' : 'default' }, 1 , {'key' : 'default' }, dict , 'resolve_object_details' ),
121+ pytest .param ({'key' : 'default' }, 'return-string' , {'key' : 'default' }, dict , 'resolve_object_details' ),
117122 ],
118123)
119124def test_check_method_and_result_match_type (
120125 # start of parameterized values
121126 default_value : Union [bool , str , int , float , List ],
122127 return_value : Union [bool , str , int , float , List ],
123128 expected_value : Union [bool , str , int , float , List ],
129+ expected_type : type ,
124130 method_name : str ,
125131 # end of parameterized values
126132 test_data_source : TestData ,
@@ -130,7 +136,8 @@ def test_check_method_and_result_match_type(
130136
131137 method = getattr (provider , method_name )
132138 resolution_details = method ("check-method-flag" , default_value , evaluation_context )
133-
139+
140+ assert isinstance (resolution_details .value , expected_type )
134141 assert resolution_details .value == expected_value
135142
136143
0 commit comments