@@ -265,3 +265,55 @@ def test_autoscale_validations(self, mock_requests):
265265 {'autoscale' : {'cmd' : {'min' : 4 , 'cpu_percent' : 45 }}}
266266 )
267267 self .assertEqual (response .status_code , 400 , response .data )
268+
269+ def test_settings_labels (self , mock_requests ):
270+ """
271+ Test that labels can be applied
272+ """
273+ app_id = self .create_app ()
274+
275+ # create
276+ base_labels = {
277+ 'label' :
278+ {
279+ 'git_repo' : 'https://github.com/deis/controller' ,
280+ 'team' : 'frontend' ,
281+ 'empty' : ''
282+ }
283+ }
284+ response = self .client .post (
285+ '/v2/apps/{app_id}/settings' .format (** locals ()),
286+ base_labels
287+ )
288+ self .assertEqual (response .status_code , 201 , response .data )
289+ self .assertEqual (response .data ['label' ], base_labels ['label' ])
290+
291+ # update
292+ labels = {'label' : {'team' : 'backend' }}
293+ response = self .client .post (
294+ '/v2/apps/{app_id}/settings' .format (** locals ()),
295+ labels
296+ )
297+ self .assertEqual (response .status_code , 201 , response .data )
298+ self .assertEqual (response .data ['label' ]['team' ], labels ['label' ]['team' ])
299+ self .assertEqual (response .data ['label' ]['git_repo' ], base_labels ['label' ]['git_repo' ])
300+ self .assertEqual (response .data ['label' ]['empty' ], base_labels ['label' ]['empty' ])
301+
302+ # remove
303+ labels = {'label' : {'git_repo' : None }}
304+ response = self .client .post (
305+ '/v2/apps/{app_id}/settings' .format (** locals ()),
306+ labels
307+ )
308+ self .assertEqual (response .status_code , 201 , response .data )
309+ self .assertEqual (response .data ['label' ]['team' ], 'backend' )
310+ self .assertFalse ('git_repo' in response .data ['label' ])
311+ self .assertEqual (response .data ['label' ]['empty' ], base_labels ['label' ]['empty' ])
312+
313+ # error on remove non-exist label
314+ labels = {'label' : {'git_repo' : None }}
315+ response = self .client .post (
316+ '/v2/apps/{app_id}/settings' .format (** locals ()),
317+ labels
318+ )
319+ self .assertEqual (response .status_code , 422 , response .data )
0 commit comments