@@ -336,6 +336,75 @@ def test_backup_restore(self):
336336 self .assertIsNone (result )
337337
338338
339+ class TestBackupSet (TestBackup ):
340+
341+ backup = volume_fakes .FakeBackup .create_one_backup ()
342+
343+ def setUp (self ):
344+ super (TestBackupSet , self ).setUp ()
345+
346+ self .backups_mock .get .return_value = self .backup
347+
348+ # Get the command object to test
349+ self .cmd = backup .SetVolumeBackup (self .app , None )
350+
351+ def test_backup_set_name (self ):
352+ arglist = [
353+ '--name' , 'new_name' ,
354+ self .backup .id ,
355+ ]
356+ verifylist = [
357+ ('name' , 'new_name' ),
358+ ('backup' , self .backup .id ),
359+ ]
360+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
361+
362+ # In base command class ShowOne in cliff, abstract method take_action()
363+ # returns nothing
364+ result = self .cmd .take_action (parsed_args )
365+ self .backups_mock .update .assert_called_once_with (
366+ self .backup .id , ** {'name' : 'new_name' })
367+ self .assertIsNone (result )
368+
369+ def test_backup_set_state (self ):
370+ arglist = [
371+ '--state' , 'error' ,
372+ self .backup .id
373+ ]
374+ verifylist = [
375+ ('state' , 'error' ),
376+ ('backup' , self .backup .id )
377+ ]
378+
379+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
380+
381+ result = self .cmd .take_action (parsed_args )
382+ self .backups_mock .reset_state .assert_called_once_with (
383+ self .backup .id , 'error' )
384+ self .assertIsNone (result )
385+
386+ def test_backup_set_state_failed (self ):
387+ self .backups_mock .reset_state .side_effect = exceptions .CommandError ()
388+ arglist = [
389+ '--state' , 'error' ,
390+ self .backup .id
391+ ]
392+ verifylist = [
393+ ('state' , 'error' ),
394+ ('backup' , self .backup .id )
395+ ]
396+
397+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
398+ try :
399+ self .cmd .take_action (parsed_args )
400+ self .fail ('CommandError should be raised.' )
401+ except exceptions .CommandError as e :
402+ self .assertEqual ('One or more of the set operations failed' ,
403+ str (e ))
404+ self .backups_mock .reset_state .assert_called_with (
405+ self .backup .id , 'error' )
406+
407+
339408class TestBackupShow (TestBackup ):
340409
341410 backup = volume_fakes .FakeBackup .create_one_backup ()
0 commit comments