Skip to content

Commit

Permalink
tests: Add tests for EC2ImageUploader
Browse files Browse the repository at this point in the history
Signed-off-by: Sayan Chowdhury <sayan.chowdhury2012@gmail.com>
  • Loading branch information
sayanchowdhury committed Apr 5, 2018
1 parent 0ddfd41 commit e6ab72c
Show file tree
Hide file tree
Showing 6 changed files with 571 additions and 9 deletions.
21 changes: 13 additions & 8 deletions fedimg/services/ec2/ec2imguploader.py
Expand Up @@ -23,6 +23,7 @@
log = logging.getLogger("fedmsg")

import re
import time

import fedimg.messenger

Expand Down Expand Up @@ -124,8 +125,9 @@ def _retry_and_get_volume_id(self, task_id):

return volume_id

log.debug('Failed to find complete. Task %r still running. '
log.debug('Failed to find complete. Task %r is still running. '
'Sleeping for 10 seconds.' % task_id)
time.sleep(10)

def _create_snapshot(self, volume):
snapshot = self._connect().create_volume_snapshot(
Expand Down Expand Up @@ -172,12 +174,12 @@ def _create_volume(self, source):
'Fetching task id...')

task_id = get_item_from_regex(output, regex='\s(import-vol-\w{8})')
log.info('Fetched task_id: %r. Listening to the task.' % task_id)
log.debug('Fetched task_id: %r. Listening to the task.' % task_id)

volume_id = self._retry_and_get_volume_id(task_id)

volume = self.get_volume_from_volume_id(volume_id)
log.info('Finish fetching volume object using volume_id')
log.debug('Finish fetching volume object using volume_id')

return volume

Expand Down Expand Up @@ -256,12 +258,15 @@ def clean_up(self, image_id, delete_snapshot=True, force=False):
if self.volume:
self._connect().destroy_volume(self.volume)

self._connect().deregister_image(
image_id,
delete_snapshot=delete_snapshot
)
# self._connect().deregister_image(
# image_id,
# delete_snapshot=delete_snapshot
# )

node_image = self._connect().get_image(image_id=image_id)
is_node_image_deleted = self._connect().delete_image(node_image)

return True
return is_node_image_deleted

def set_image_virt_type(self, virt_type):
"""
Expand Down
Empty file added tests/services/__init__.py
Empty file.
43 changes: 43 additions & 0 deletions tests/services/test_ec2base.py
@@ -0,0 +1,43 @@
# This file is part of fedimg.
# Copyright (C) 2018 Red Hat, Inc.
#
# fedimg is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# fedimg is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License along with fedimg; if not, see http://www.gnu.org/licenses,
# or write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#
# Authors: Sayan Chowdhury <sayanchowdhury@fedoraproject.org>

import unittest

from fedimg.services.ec2.ec2base import EC2Base
from libcloud.compute.drivers.ec2 import EC2NodeDriver


class TestEC2Base(unittest.TestCase):

def setUp(self):
self.ec2base_obj = EC2Base()
setattr(self.ec2base_obj, 'access_key', 'ABCDEFGHIJKLMNO123456789')
setattr(self.ec2base_obj, 'secret_key', 'THISISASECRETKEYWITH0987')
setattr(self.ec2base_obj, 'region', 'us-east-1')

def test_connect(self):
driver = self.ec2base_obj._connect()

self.assertTrue(isinstance(driver, EC2NodeDriver))

def test_set_region(self):
self.ec2base_obj.set_region('eu-east-1')
self.assertEqual(self.ec2base_obj.region, 'eu-east-1')

0 comments on commit e6ab72c

Please sign in to comment.