@@ -435,7 +435,8 @@ def test_volume_create_with_source_volume(self):
435435 self .assertEqual (self .columns , columns )
436436 self .assertCountEqual (self .datalist , data )
437437
438- def test_volume_create_with_bootable_and_readonly (self ):
438+ @mock .patch .object (utils , 'wait_for_status' , return_value = True )
439+ def test_volume_create_with_bootable_and_readonly (self , mock_wait ):
439440 arglist = [
440441 '--bootable' ,
441442 '--read-only' ,
@@ -478,7 +479,8 @@ def test_volume_create_with_bootable_and_readonly(self):
478479 self .volumes_mock .update_readonly_flag .assert_called_with (
479480 self .new_volume .id , True )
480481
481- def test_volume_create_with_nonbootable_and_readwrite (self ):
482+ @mock .patch .object (utils , 'wait_for_status' , return_value = True )
483+ def test_volume_create_with_nonbootable_and_readwrite (self , mock_wait ):
482484 arglist = [
483485 '--non-bootable' ,
484486 '--read-write' ,
@@ -522,8 +524,9 @@ def test_volume_create_with_nonbootable_and_readwrite(self):
522524 self .new_volume .id , False )
523525
524526 @mock .patch .object (volume .LOG , 'error' )
527+ @mock .patch .object (utils , 'wait_for_status' , return_value = True )
525528 def test_volume_create_with_bootable_and_readonly_fail (
526- self , mock_error ):
529+ self , mock_wait , mock_error ):
527530
528531 self .volumes_mock .set_bootable .side_effect = (
529532 exceptions .CommandError ())
@@ -574,6 +577,50 @@ def test_volume_create_with_bootable_and_readonly_fail(
574577 self .volumes_mock .update_readonly_flag .assert_called_with (
575578 self .new_volume .id , True )
576579
580+ @mock .patch .object (volume .LOG , 'error' )
581+ @mock .patch .object (utils , 'wait_for_status' , return_value = False )
582+ def test_volume_create_non_available_with_readonly (
583+ self , mock_wait , mock_error ,
584+ ):
585+ arglist = [
586+ '--non-bootable' ,
587+ '--read-only' ,
588+ '--size' , str (self .new_volume .size ),
589+ self .new_volume .name ,
590+ ]
591+ verifylist = [
592+ ('bootable' , False ),
593+ ('non_bootable' , True ),
594+ ('read_only' , True ),
595+ ('read_write' , False ),
596+ ('size' , self .new_volume .size ),
597+ ('name' , self .new_volume .name ),
598+ ]
599+
600+ parsed_args = self .check_parser (
601+ self .cmd , arglist , verifylist )
602+
603+ columns , data = self .cmd .take_action (parsed_args )
604+
605+ self .volumes_mock .create .assert_called_with (
606+ size = self .new_volume .size ,
607+ snapshot_id = None ,
608+ name = self .new_volume .name ,
609+ description = None ,
610+ volume_type = None ,
611+ availability_zone = None ,
612+ metadata = None ,
613+ imageRef = None ,
614+ source_volid = None ,
615+ consistencygroup_id = None ,
616+ scheduler_hints = None ,
617+ backup_id = None ,
618+ )
619+
620+ self .assertEqual (2 , mock_error .call_count )
621+ self .assertEqual (self .columns , columns )
622+ self .assertCountEqual (self .datalist , data )
623+
577624 def test_volume_create_without_size (self ):
578625 arglist = [
579626 self .new_volume .name ,
0 commit comments