@@ -246,6 +246,51 @@ def test_upload_build_when_server_sdk_version_is_provided(self):
246246 ServerSdkVersion = server_sdk_version ,
247247 )
248248
249+ def test_upload_build_when_tags_are_provided (self ):
250+ self .file_creator .create_file ('tmpfile' , 'Some contents' )
251+ self .args = [
252+ '--name' , self .build_name , '--build-version' , self .build_version ,
253+ '--build-root' , self .build_root ,
254+ '--tags' , 'Environment=Production' , 'Team=GameDev'
255+ ]
256+ self .cmd (self .args , self .global_args )
257+
258+ self .gamelift_client .create_build .assert_called_once_with (
259+ Name = self .build_name , Version = self .build_version ,
260+ Tags = [
261+ {'Key' : 'Environment' , 'Value' : 'Production' },
262+ {'Key' : 'Team' , 'Value' : 'GameDev' }
263+ ])
264+
265+
266+ class TestParseTags (unittest .TestCase ):
267+ def test_parse_tags_with_key_value_pairs (self ):
268+ result = parse_tags (['Key1=Value1' , 'Key2=Value2' ])
269+ self .assertEqual (result , [
270+ {'Key' : 'Key1' , 'Value' : 'Value1' },
271+ {'Key' : 'Key2' , 'Value' : 'Value2' }
272+ ])
273+
274+ def test_parse_tags_with_empty_value (self ):
275+ result = parse_tags (['Key1=' ])
276+ self .assertEqual (result , [{'Key' : 'Key1' , 'Value' : '' }])
277+
278+ def test_parse_tags_without_equals (self ):
279+ result = parse_tags (['Key1' ])
280+ self .assertEqual (result , [{'Key' : 'Key1' , 'Value' : '' }])
281+
282+ def test_parse_tags_with_equals_in_value (self ):
283+ result = parse_tags (['Key1=Value=WithEquals' ])
284+ self .assertEqual (result , [{'Key' : 'Key1' , 'Value' : 'Value=WithEquals' }])
285+
286+ def test_parse_tags_with_none (self ):
287+ result = parse_tags (None )
288+ self .assertEqual (result , [])
289+
290+ def test_parse_tags_with_empty_list (self ):
291+ result = parse_tags ([])
292+ self .assertEqual (result , [])
293+
249294
250295class TestZipDirectory (unittest .TestCase ):
251296 def setUp (self ):
0 commit comments