@@ -132,5 +132,86 @@ def test_multiline(self):
132132 )
133133
134134
135+ class TestParseParameterValue (unittest .TestCase ):
136+ """Tests for parse_parameter_value function."""
137+
138+ def test_integer_positive (self ):
139+ self .assertEqual (parsing .parse_parameter_value ('123' ), 123 )
140+
141+ def test_integer_negative (self ):
142+ self .assertEqual (parsing .parse_parameter_value ('-456' ), - 456 )
143+
144+ def test_integer_zero (self ):
145+ self .assertEqual (parsing .parse_parameter_value ('0' ), 0 )
146+
147+ def test_float_positive (self ):
148+ self .assertEqual (parsing .parse_parameter_value ('12.5' ), 12.5 )
149+
150+ def test_float_negative (self ):
151+ self .assertEqual (parsing .parse_parameter_value ('-3.14' ), - 3.14 )
152+
153+ def test_float_scientific (self ):
154+ self .assertEqual (parsing .parse_parameter_value ('1e10' ), 1e10 )
155+
156+ def test_boolean_true_lowercase (self ):
157+ self .assertEqual (parsing .parse_parameter_value ('true' ), True )
158+
159+ def test_boolean_false_lowercase (self ):
160+ self .assertEqual (parsing .parse_parameter_value ('false' ), False )
161+
162+ def test_boolean_true_capitalized (self ):
163+ self .assertEqual (parsing .parse_parameter_value ('True' ), True )
164+
165+ def test_boolean_false_capitalized (self ):
166+ self .assertEqual (parsing .parse_parameter_value ('False' ), False )
167+
168+ def test_list_integers (self ):
169+ self .assertEqual (parsing .parse_parameter_value ('[1, 2, 3]' ), [1 , 2 , 3 ])
170+
171+ def test_list_strings (self ):
172+ self .assertEqual (
173+ parsing .parse_parameter_value ('["a", "b", "c"]' ), ['a' , 'b' , 'c' ])
174+
175+ def test_list_empty (self ):
176+ self .assertEqual (parsing .parse_parameter_value ('[]' ), [])
177+
178+ def test_dict_simple (self ):
179+ self .assertEqual (
180+ parsing .parse_parameter_value ('{"key": "value"}' ), {'key' : 'value' })
181+
182+ def test_dict_nested (self ):
183+ self .assertEqual (
184+ parsing .parse_parameter_value ('{"a": {"b": 1}}' ), {'a' : {
185+ 'b' : 1
186+ }})
187+
188+ def test_dict_empty (self ):
189+ self .assertEqual (parsing .parse_parameter_value ('{}' ), {})
190+
191+ def test_null_value (self ):
192+ self .assertIsNone (parsing .parse_parameter_value ('null' ))
193+
194+ def test_string_simple (self ):
195+ self .assertEqual (parsing .parse_parameter_value ('hello' ), 'hello' )
196+
197+ def test_string_with_spaces (self ):
198+ self .assertEqual (
199+ parsing .parse_parameter_value ('hello world' ), 'hello world' )
200+
201+ def test_json_quoted_string_preserves_value (self ):
202+ self .assertEqual (parsing .parse_parameter_value ('"007"' ), '007' )
203+ self .assertEqual (parsing .parse_parameter_value ('"hello"' ), 'hello' )
204+
205+ def test_string_that_looks_like_number (self ):
206+ self .assertEqual (parsing .parse_parameter_value ('007' ), 7 )
207+ self .assertEqual (
208+ parsing .parse_parameter_value ('+1-555-1234' ), '+1-555-1234' )
209+
210+ def test_string_preserves_value (self ):
211+ self .assertEqual (
212+ parsing .parse_parameter_value ('some-pipeline-name' ),
213+ 'some-pipeline-name' )
214+
215+
135216if __name__ == '__main__' :
136217 unittest .main ()
0 commit comments