def test_upload_tarball_by_url_https_failed_retry_v2(self):
fake_conn = mock.Mock()
mock_HTTPSConn = self.mock_patch_object(
self.glance, '_create_connection', fake_conn)
mock_validate_image = self.mock_patch_object(
self.glance, 'validate_image_status_before_upload_v2')
mock_create_tarball = self.mock_patch_object(
self.glance.utils, 'create_tarball')
mock_check_resp_status = self.mock_patch_object(
self.glance, 'check_resp_status_and_retry')
mock_update_image_meta = self.mock_patch_object(
self.glance, '_update_image_meta_v2')
self.glance._create_connection().getresponse = mock.Mock()
self.glance._create_connection().getresponse().status = \
httplib.REQUEST_TIMEOUT
fake_extra_headers = {}
fake_properties = {}
fake_endpoint = 'https://fake_netloc/fake_path'
fake_image_id = 'fake_image_id'
expected_url = "%(glance_endpoint)s/v2/images/%(image_id)s/file" % {
'glance_endpoint': fake_endpoint,
'image_id': fake_image_id}
expected_wsgi_path = '/fake_path/v2/images/%s' % fake_image_id
expected_mgt_url = "%(glance_endpoint)s/v2/images/%(image_id)s" % {
'glance_endpoint': fake_endpoint,
'image_id': fake_image_id}
expect_url_parts = urlparse(expected_url)
fake_mgt_parts = urlparse(expected_mgt_url)
fake_mgt_path = fake_mgt_parts[2]
self.glance._upload_tarball_by_url_v2(
'fake_staging_path', fake_image_id, fake_endpoint,
fake_extra_headers, fake_properties)
mock_update_image_meta.assert_called_with(fake_conn,
fake_extra_headers,
fake_properties,
fake_mgt_path)
mock_HTTPSConn.assert_called_with(expect_url_parts[0],
expect_url_parts[1])
mock_validate_image.assert_called_with(fake_conn,
expected_url,
fake_extra_headers,
expected_wsgi_path)
self.assertTrue(mock_create_tarball.called)
self.assertTrue(
mock_HTTPSConn.return_value.getresponse.called)
self.assertTrue(mock_check_resp_status.called)
评论列表
文章目录