Merge "Support service client unit tests for headers also."

This commit is contained in:
Jenkins
2015-11-17 23:40:49 +00:00
committed by Gerrit Code Review
2 changed files with 33 additions and 5 deletions

View File

@@ -20,19 +20,22 @@ from tempest_lib.tests import base
class BaseComputeServiceTest(base.TestCase):
def create_response(self, body, to_utf=False, status=200):
def create_response(self, body, to_utf=False, status=200, headers=None):
json_body = {}
if body:
json_body = json.dumps(body)
if to_utf:
json_body = json_body.encode('utf-8')
response = (httplib2.Response({'status': status}), json_body)
resp_dict = {'status': status}
if headers:
resp_dict.update(headers)
response = (httplib2.Response(resp_dict), json_body)
return response
def check_service_client_function(self, function, function2mock,
body, to_utf=False, status=200,
**kwargs):
mocked_response = self.create_response(body, to_utf, status)
headers=None, **kwargs):
mocked_response = self.create_response(body, to_utf, status, headers)
self.useFixture(mockpatch.Patch(
function2mock, return_value=mocked_response))
if kwargs:

View File

@@ -85,6 +85,7 @@ class TestImagesClient(base.BaseComputeServiceTest):
"progress": 100,
"status": "ACTIVE",
"updated": "2011-01-01T01:02:03Z"}},
"create": {},
"delete": {}
}
func2mock = {
@@ -94,6 +95,7 @@ class TestImagesClient(base.BaseComputeServiceTest):
'delete': 'tempest_lib.common.rest_client.RestClient.delete'}
# Variable definition
FAKE_IMAGE_ID = FAKE_IMAGE_DATA['show']['image']['id']
FAKE_SERVER_ID = "80a599e0-31e7-49b7-b260-868f441e343f"
FAKE_CREATE_INFO = {'location': 'None'}
FAKE_METADATA = FAKE_IMAGE_METADATA['show_item']['meta']
@@ -108,10 +110,27 @@ class TestImagesClient(base.BaseComputeServiceTest):
mock_operation = self.func2mock['get']
expected_op = self.FAKE_IMAGE_DATA[operation]
params = {"image_id": self.FAKE_IMAGE_ID}
headers = None
if operation == 'list':
function = self.client.list_images
elif operation == 'show':
function = self.client.show_image
elif operation == 'create':
function = self.client.create_image
mock_operation = self.func2mock['post']
params = {"server_id": self.FAKE_SERVER_ID}
response_code = 202
headers = {
'connection': 'keep-alive',
'content-length': '0',
'content-type': 'application/json',
'status': '202',
'x-compute-request-id': 'req-fake',
'vary': 'accept-encoding',
'x-openstack-nova-api-version': 'v2.1',
'date': '13 Oct 2015 05:55:36 GMT',
'location': 'http://fake.com/images/fake'
}
else:
function = self.client.delete_image
mock_operation = self.func2mock['delete']
@@ -119,7 +138,7 @@ class TestImagesClient(base.BaseComputeServiceTest):
self.check_service_client_function(
function, mock_operation, expected_op,
bytes_body, response_code, **params)
bytes_body, response_code, headers, **params)
def _test_image_metadata(self, operation="set_item", bytes_body=False):
response_code = 200
@@ -191,6 +210,12 @@ class TestImagesClient(base.BaseComputeServiceTest):
def test_show_image_with_bytes_body(self):
self._test_image_operation('show', True)
def test_create_image_with_str_body(self):
self._test_image_operation('create')
def test_create_image_with_bytes_body(self):
self._test_image_operation('create', True)
def test_delete_image_with_str_body(self):
self._test_image_operation('delete')