@@ -26,6 +26,55 @@ def setUp(self):
2626
2727 self .backups_mock = self .app .client_manager .volume .backups
2828 self .backups_mock .reset_mock ()
29+ self .volumes_mock = self .app .client_manager .volume .volumes
30+ self .volumes_mock .reset_mock ()
31+ self .restores_mock = self .app .client_manager .volume .restores
32+ self .restores_mock .reset_mock ()
33+
34+
35+ class TestBackupCreate (TestBackup ):
36+ def setUp (self ):
37+ super (TestBackupCreate , self ).setUp ()
38+
39+ self .volumes_mock .get .return_value = fakes .FakeResource (
40+ None ,
41+ copy .deepcopy (volume_fakes .VOLUME ),
42+ loaded = True
43+ )
44+
45+ self .backups_mock .create .return_value = fakes .FakeResource (
46+ None ,
47+ copy .deepcopy (volume_fakes .BACKUP ),
48+ loaded = True
49+ )
50+ # Get the command object to test
51+ self .cmd = backup .CreateBackup (self .app , None )
52+
53+ def test_backup_create (self ):
54+ arglist = [
55+ volume_fakes .volume_id ,
56+ "--name" , volume_fakes .backup_name ,
57+ "--description" , volume_fakes .backup_description ,
58+ "--container" , volume_fakes .backup_name
59+ ]
60+ verifylist = [
61+ ("volume" , volume_fakes .volume_id ),
62+ ("name" , volume_fakes .backup_name ),
63+ ("description" , volume_fakes .backup_description ),
64+ ("container" , volume_fakes .backup_name )
65+ ]
66+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
67+
68+ columns , data = self .cmd .take_action (parsed_args )
69+
70+ self .backups_mock .create .assert_called_with (
71+ volume_fakes .volume_id ,
72+ container = volume_fakes .backup_name ,
73+ name = volume_fakes .backup_name ,
74+ description = volume_fakes .backup_description
75+ )
76+ self .assertEqual (columns , volume_fakes .BACKUP_columns )
77+ self .assertEqual (data , volume_fakes .BACKUP_data )
2978
3079
3180class TestBackupShow (TestBackup ):
@@ -80,3 +129,101 @@ def test_backup_delete(self):
80129
81130 self .cmd .take_action (parsed_args )
82131 self .backups_mock .delete .assert_called_with (volume_fakes .backup_id )
132+
133+
134+ class TestBackupRestore (TestBackup ):
135+ def setUp (self ):
136+ super (TestBackupRestore , self ).setUp ()
137+
138+ self .backups_mock .get .return_value = fakes .FakeResource (
139+ None ,
140+ copy .deepcopy (volume_fakes .BACKUP ),
141+ loaded = True
142+ )
143+ self .volumes_mock .get .return_value = fakes .FakeResource (
144+ None ,
145+ copy .deepcopy (volume_fakes .VOLUME ),
146+ loaded = True
147+ )
148+ self .restores_mock .restore .return_value = None
149+ # Get the command object to mock
150+ self .cmd = backup .RestoreBackup (self .app , None )
151+
152+ def test_backup_restore (self ):
153+ arglist = [
154+ volume_fakes .backup_id ,
155+ volume_fakes .volume_id
156+ ]
157+ verifylist = [
158+ ("backup" , volume_fakes .backup_id ),
159+ ("volume" , volume_fakes .volume_id )
160+ ]
161+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
162+
163+ self .cmd .take_action (parsed_args )
164+ self .restores_mock .restore .assert_called_with (volume_fakes .backup_id ,
165+ volume_fakes .volume_id )
166+
167+
168+ class TestBackupList (TestBackup ):
169+ def setUp (self ):
170+ super (TestBackupList , self ).setUp ()
171+
172+ self .volumes_mock .list .return_value = [
173+ fakes .FakeResource (
174+ None ,
175+ copy .deepcopy (volume_fakes .VOLUME ),
176+ loaded = True
177+ )
178+ ]
179+ self .backups_mock .list .return_value = [
180+ fakes .FakeResource (
181+ None ,
182+ copy .deepcopy (volume_fakes .BACKUP ),
183+ loaded = True
184+ )
185+ ]
186+ # Get the command to test
187+ self .cmd = backup .ListBackup (self .app , None )
188+
189+ def test_backup_list_without_options (self ):
190+ arglist = []
191+ verifylist = [("long" , False )]
192+
193+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
194+ columns , data = self .cmd .take_action (parsed_args )
195+
196+ collist = ['ID' , 'Name' , 'Description' , 'Status' , 'Size' ]
197+ self .assertEqual (collist , columns )
198+
199+ datalist = ((
200+ volume_fakes .backup_id ,
201+ volume_fakes .backup_name ,
202+ volume_fakes .backup_description ,
203+ volume_fakes .backup_status ,
204+ volume_fakes .backup_size
205+ ),)
206+ self .assertEqual (datalist , tuple (data ))
207+
208+ def test_backup_list_with_options (self ):
209+ arglist = ["--long" ]
210+ verifylist = [("long" , True )]
211+
212+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
213+ columns , data = self .cmd .take_action (parsed_args )
214+
215+ collist = ['ID' , 'Name' , 'Description' , 'Status' , 'Size' ,
216+ 'Availability Zone' , 'Volume' , 'Container' ]
217+ self .assertEqual (collist , columns )
218+
219+ datalist = ((
220+ volume_fakes .backup_id ,
221+ volume_fakes .backup_name ,
222+ volume_fakes .backup_description ,
223+ volume_fakes .backup_status ,
224+ volume_fakes .backup_size ,
225+ volume_fakes .volume_availability_zone ,
226+ volume_fakes .backup_volume_id ,
227+ volume_fakes .backup_container
228+ ),)
229+ self .assertEqual (datalist , tuple (data ))
0 commit comments