def test_load_image_handlers_with_invalid_handler_name(self): self.flags(image_handlers=['invaild1', 'download', 'invaild2']) imagehandler.load_image_handlers(self.fake_driver) self.assertEqual(1, len(imagehandler._IMAGE_HANDLERS)) self.assertIsInstance(imagehandler._IMAGE_HANDLERS[0], download_imagehandler.DownloadImageHandler) self.assertEqual(0, len(imagehandler._IMAGE_HANDLERS_ASSO))
def test_load_image_handlers(self): self.flags(image_handlers=['download']) imagehandler.load_image_handlers(self.fake_driver) self.assertEqual(1, len(imagehandler._IMAGE_HANDLERS)) self.assertIsInstance(imagehandler._IMAGE_HANDLERS[0], download_imagehandler.DownloadImageHandler) self.assertEqual(0, len(imagehandler._IMAGE_HANDLERS_ASSO))
def _handle_image_without_associated_handle(self, image_id, expected_locations, expected_handled_location, expected_handled_path, mock__fetch_image): def _fake_handler_fetch(context, image_meta, path, user_id=None, project_id=None, location=None): return location == expected_handled_location mock__fetch_image.side_effect = _fake_handler_fetch self.flags(image_handlers=['download']) imagehandler.load_image_handlers(self.fake_driver) self.assertEqual(1, len(imagehandler._IMAGE_HANDLERS)) self.assertEqual(0, len(imagehandler._IMAGE_HANDLERS_ASSO)) check_left_loc_count = expected_handled_location in expected_locations if check_left_loc_count: unused_location_count = (len(expected_locations) - expected_locations.index(expected_handled_location) - 1) self._fetch_image(image_id, expected_locations, expected_handled_location, expected_handled_path) if check_left_loc_count: self.assertEqual(unused_location_count, len(expected_locations)) self.assertEqual(1, len(imagehandler._IMAGE_HANDLERS_ASSO)) self.assertEqual( (imagehandler._IMAGE_HANDLERS[0], expected_handled_location), imagehandler._IMAGE_HANDLERS_ASSO[expected_handled_path][:2])
def setUp(self): super(ImageCacheManagerTestCase, self).setUp() self.stock_instance_names = set(['instance-00000001', 'instance-00000002', 'instance-00000003', 'banana-42-hamster']) imagehandler.load_image_handlers(libvirt_driver.LibvirtDriver( fake.FakeVirtAPI(), False))
def test_load_image_handlers_with_deduplicating(self, mock_DriverManager, mock_ExtensionManager): handlers = ['handler1', 'handler2', 'handler3'] def _fake_stevedore_driver_manager(*args, **kwargs): return mock.MagicMock(**{'driver': kwargs['name']}) mock_ExtensionManager.return_value = mock.MagicMock( **{'names.return_value': handlers}) mock_DriverManager.side_effect = _fake_stevedore_driver_manager self.flags(image_handlers=['invaild1', 'handler1 ', ' handler3', 'invaild2', ' handler2 ']) imagehandler.load_image_handlers(self.fake_driver) self.assertEqual(3, len(imagehandler._IMAGE_HANDLERS)) for handler in imagehandler._IMAGE_HANDLERS: self.assertTrue(handler in handlers) self.assertEqual(['handler1', 'handler3', 'handler2'], imagehandler._IMAGE_HANDLERS) self.assertEqual(0, len(imagehandler._IMAGE_HANDLERS_ASSO))
def test_load_image_handlers_with_load_handler_failure(self, mock_DriverManager, mock_ExtensionManager): handlers = ['raise_exception', 'download'] def _fake_stevedore_driver_manager(*args, **kwargs): if kwargs['name'] == 'raise_exception': raise Exception('handler failed to initialize.') else: return mock.MagicMock(**{'driver': kwargs['name']}) mock_ExtensionManager.return_value = mock.MagicMock( **{'names.return_value': handlers}) mock_DriverManager.side_effect = _fake_stevedore_driver_manager self.flags(image_handlers=['raise_exception', 'download', 'raise_exception', 'download']) imagehandler.load_image_handlers(self.fake_driver) self.assertEqual(1, len(imagehandler._IMAGE_HANDLERS)) self.assertEqual(['download'], imagehandler._IMAGE_HANDLERS) self.assertEqual(0, len(imagehandler._IMAGE_HANDLERS_ASSO))
def __init__(self, virtapi): self.virtapi = virtapi self._compute_event_callback = None imagehandler.load_image_handlers(self)