@@ -50,11 +50,8 @@ def delete(self, *args, **kwargs):
50
50
return MockRequest (None )
51
51
raise ValueError ("Unexpected delete request" )
52
52
53
- def get (self , project , region ):
54
- def something ():
55
- pass
56
- something .execute = lambda : self .responses
57
- return something
53
+ def get (self , * args , ** kwargs ):
54
+ return MockRequest ()
58
55
59
56
60
57
class MockClient :
@@ -111,6 +108,13 @@ def mocked_resource():
111
108
], 'id' : "id" }),
112
109
MockRequest ({'error' : {'errors' : [{'message' : 'err message' }]},
113
110
'warnings' : [{'message' : 'warning message' }]}),
111
+ MockRequest ({
112
+ 'items' : [
113
+ {'name' : 'pcw_ignore' , 'creationTimestamp' : older_than_max_age , 'timeCreated' : older_than_max_age ,
114
+ 'network' : 'mynetwork' , 'labels' : {'pcw_ignore' : '1' }}
115
+ ], 'id' : "id"
116
+ }),
117
+ MockRequest (), # on images().delete()
114
118
None # on images().list_next()
115
119
])
116
120
@@ -142,7 +146,14 @@ def test_list_regions(gce):
142
146
def test_list_zones (gce ):
143
147
gce .compute_client .regions = MockResource ({'zones' : ['somethingthatIdonotknow/RabbitHole' ]})
144
148
gce .compute_client .list_zones = {'zones' : ['somethingthatIdonotknow/RabbitHole' ]}
145
- assert gce .list_zones ('Oxfordshire' ) == ['RabbitHole' ]
149
+
150
+ mock_region_response = {
151
+ 'zones' : ['somethingthatIdonotknow/RabbitHole' ]
152
+ }
153
+
154
+ # Mock the regions().get() method to return the mock response
155
+ with patch .object (gce .compute_client .regions (), 'get' , return_value = MockRequest (mock_region_response )):
156
+ assert gce .list_zones ('Oxfordshire' ) == ['RabbitHole' ]
146
157
147
158
148
159
def _test_cleanup (gce , resource_type , cleanup_call , resources ):
@@ -156,8 +167,10 @@ def _test_cleanup(gce, resource_type, cleanup_call, resources):
156
167
cleanup_call ()
157
168
if gce .dry_run :
158
169
assert resources .deleted_resources == []
159
- else :
170
+ elif resources . get ( "labels" ) == "pcw_ignore" :
160
171
assert resources .deleted_resources == ['delete1' , 'delete2' ]
172
+ else :
173
+ assert resources .deleted_resources == ['delete1' , 'delete2' , 'pcw_ignore' ]
161
174
162
175
163
176
@mark .parametrize ("dry_run" , [True , False ])
@@ -222,6 +235,12 @@ def test_cleanup_networks(gce, mocked_resource, dry_run):
222
235
_test_cleanup (gce , "networks" , gce .cleanup_networks , mocked_resource )
223
236
224
237
238
+ @mark .parametrize ("dry_run" , [True , False ])
239
+ def test_pcw_ignore_label (gce , mocked_resource , dry_run ):
240
+ gce .dry_run = dry_run
241
+ _test_cleanup (gce , "images" , gce .cleanup_images , mocked_resource )
242
+
243
+
225
244
def test_cleanup_all (gce ):
226
245
gce .cleanup_blobs = MagicMock ()
227
246
gce .cleanup_disks = MagicMock ()
0 commit comments