@@ -89,6 +89,7 @@ class MockedEC2Client():
8989 response = {}
9090 deleted_images = list ()
9191 deleted_volumes = list ()
92+ deleted_keys = list ()
9293 snapshotid_to_delete = 'delete_me'
9394 volumeid_to_delete = 'delete_me'
9495 snapshotid_i_have_ami = 'you_can_not_delete_me'
@@ -139,6 +140,9 @@ def describe_snapshots(self, *args, **kwargs):
139140 def deregister_image (self , * args , ** kwargs ):
140141 MockedEC2Client .deleted_images .append (kwargs ['ImageId' ])
141142
143+ def delete_key_pair (self , * args , ** kwargs ):
144+ MockedEC2Client .deleted_keys .append (kwargs ['KeyName' ])
145+
142146 def delete_snapshot (self , SnapshotId ):
143147 if MockedEC2Client .delete_snapshot_raise_error :
144148 error_response = {'Error' : {'Code' : 'InvalidSnapshot.InUse' , 'Message' : 'Message' }}
@@ -155,6 +159,9 @@ def describe_volumes(self, *args, **kwargs):
155159 def describe_vpcs (self , Filters ):
156160 return MockedEC2Client .response
157161
162+ def describe_key_pairs (self ):
163+ return MockedEC2Client .response
164+
158165 def describe_vpc_endpoints (self , Filters ):
159166 return MockedEC2Client .response
160167
@@ -301,6 +308,16 @@ def test_cleanup_snapshots_cleanup_all_new(ec2_patch):
301308 assert len (MockedEC2Client .ec2_snapshots ) == 2
302309
303310
311+ def test_cleanup_keypairs (ec2_patch ):
312+ MockedEC2Client .response = {'KeyPairs' : [{'KeyName' : 'key1' }]}
313+ ec2_patch .dry_run = True
314+ ec2_patch .cleanup_keypairs ()
315+ assert len (MockedEC2Client .deleted_keys ) == 0
316+ ec2_patch .dry_run = False
317+ ec2_patch .cleanup_keypairs ()
318+ assert len (MockedEC2Client .deleted_keys ) == 1
319+
320+
304321def test_cleanup_snapshots_cleanup_one_old (ec2_patch ):
305322 MockedEC2Client .response = {
306323 'Snapshots' : [{'SnapshotId' : MockedEC2Client .snapshotid_to_delete , 'StartTime' : older_than_max_age_date }]
0 commit comments