1414
1515import copy
1616
17+ from mock import call
18+
1719from openstackclient .tests import fakes
1820from openstackclient .tests .identity .v3 import fakes as identity_fakes
1921from openstackclient .tests .volume .v2 import fakes as volume_fakes
@@ -36,6 +38,14 @@ def setUp(self):
3638 self .images_mock = self .app .client_manager .image .images
3739 self .images_mock .reset_mock ()
3840
41+ def setup_volumes_mock (self , count ):
42+ volumes = volume_fakes .FakeVolume .create_volumes (count = count )
43+
44+ self .volumes_mock .get = volume_fakes .FakeVolume .get_volumes (
45+ volumes ,
46+ 0 )
47+ return volumes
48+
3949
4050class TestVolumeCreate (TestVolume ):
4151 def setUp (self ):
@@ -888,24 +898,38 @@ class TestVolumeDelete(TestVolume):
888898 def setUp (self ):
889899 super (TestVolumeDelete , self ).setUp ()
890900
891- self .volumes_mock .get .return_value = fakes .FakeResource (
892- None ,
893- copy .deepcopy (volume_fakes .VOLUME ),
894- loaded = True )
895901 self .volumes_mock .delete .return_value = None
896902
897903 # Get the command object to mock
898904 self .cmd = volume .DeleteVolume (self .app , None )
899905
900- def test_volume_delete (self ):
906+ def test_volume_delete_one_volume (self ):
907+ volumes = self .setup_volumes_mock (count = 1 )
908+
901909 arglist = [
902- volume_fakes . volume_id
910+ volumes [ 0 ]. id
903911 ]
904912 verifylist = [
905- ("volumes" , [volume_fakes . volume_id ])
913+ ("volumes" , [volumes [ 0 ]. id ])
906914 ]
907915
908916 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
909917
910918 self .cmd .take_action (parsed_args )
911- self .volumes_mock .delete .assert_called_with (volume_fakes .volume_id )
919+ self .volumes_mock .delete .assert_called_with (volumes [0 ].id )
920+
921+ def test_volume_delete_multi_volumes (self ):
922+ volumes = self .setup_volumes_mock (count = 3 )
923+
924+ arglist = [v .id for v in volumes ]
925+ verifylist = [
926+ ('volumes' , arglist ),
927+ ]
928+
929+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
930+
931+ self .cmd .take_action (parsed_args )
932+
933+ calls = [call (v .id ) for v in volumes ]
934+
935+ self .volumes_mock .delete .assert_has_calls (calls )
0 commit comments