[import-tests] Enhance image import tests
This commit adds more tests. This connects to the blueprint: https://blueprints.launchpad.net/glance/+spec/image-import-refactor etherpad (discussion): https://etherpad.openstack.org/p/glance-image-import-tests Change-Id: I11474cd404b360a8fb2eebc2452348d923a83a2e Co-Authored-By: Abhishek Kekane <akekane@redhat.com>
This commit is contained in:
parent
38e6c02517
commit
830526c3ed
|
@ -2225,6 +2225,21 @@ class TestImagesController(base.IsolatedUnitTest):
|
|||
pos = self.controller._get_locations_op_pos('1', None, True)
|
||||
self.assertIsNone(pos)
|
||||
|
||||
def test_image_import(self):
|
||||
request = unit_test_utils.get_fake_request()
|
||||
output = self.controller.import_image(request, UUID4,
|
||||
{})
|
||||
self.assertEqual(UUID4, output)
|
||||
|
||||
def test_image_import_not_allowed(self):
|
||||
request = unit_test_utils.get_fake_request()
|
||||
# NOTE(abhishekk): For coverage purpose setting tenant to
|
||||
# None. It is not expected to do in normal scenarios.
|
||||
request.context.tenant = None
|
||||
self.assertRaises(webob.exc.HTTPForbidden,
|
||||
self.controller.import_image,
|
||||
request, UUID4, {})
|
||||
|
||||
|
||||
class TestImagesControllerPolicies(base.IsolatedUnitTest):
|
||||
|
||||
|
@ -3104,6 +3119,65 @@ class TestImagesDeserializer(test_utils.BaseTestCase):
|
|||
self.assertEqual(sorted(['x86', '64bit']),
|
||||
sorted(output['filters']['tags']))
|
||||
|
||||
def test_image_import(self):
|
||||
self.config(enable_image_import=True)
|
||||
request = unit_test_utils.get_fake_request()
|
||||
import_body = {
|
||||
"method": {
|
||||
"name": "glance-direct"
|
||||
}
|
||||
}
|
||||
request.body = jsonutils.dump_as_bytes(import_body)
|
||||
output = self.deserializer.import_image(request)
|
||||
expected = {"body": import_body}
|
||||
self.assertEqual(expected, output)
|
||||
|
||||
def test_import_image_disabled(self):
|
||||
self.config(enable_image_import=False)
|
||||
request = unit_test_utils.get_fake_request()
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.deserializer.import_image,
|
||||
request)
|
||||
|
||||
def test_import_image_invalid_body(self):
|
||||
self.config(enable_image_import=True)
|
||||
request = unit_test_utils.get_fake_request()
|
||||
import_body = {
|
||||
"method1": {
|
||||
"name": "glance-direct"
|
||||
}
|
||||
}
|
||||
request.body = jsonutils.dump_as_bytes(import_body)
|
||||
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||
self.deserializer.import_image,
|
||||
request)
|
||||
|
||||
def test_import_image_invalid_input(self):
|
||||
self.config(enable_image_import=True)
|
||||
request = unit_test_utils.get_fake_request()
|
||||
import_body = {
|
||||
"method": {
|
||||
"abcd": "glance-direct"
|
||||
}
|
||||
}
|
||||
request.body = jsonutils.dump_as_bytes(import_body)
|
||||
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||
self.deserializer.import_image,
|
||||
request)
|
||||
|
||||
def test_import_image_invalid_import_method(self):
|
||||
self.config(enable_image_import=True)
|
||||
request = unit_test_utils.get_fake_request()
|
||||
import_body = {
|
||||
"method": {
|
||||
"name": "abcd"
|
||||
}
|
||||
}
|
||||
request.body = jsonutils.dump_as_bytes(import_body)
|
||||
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||
self.deserializer.import_image,
|
||||
request)
|
||||
|
||||
|
||||
class TestImagesDeserializerWithExtendedSchema(test_utils.BaseTestCase):
|
||||
|
||||
|
@ -3487,6 +3561,12 @@ class TestImagesSerializer(test_utils.BaseTestCase):
|
|||
self.assertEqual(expected, actual)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
|
||||
def test_import_image(self):
|
||||
response = webob.Response()
|
||||
self.serializer.import_image(response, {})
|
||||
self.assertEqual(http.ACCEPTED, response.status_int)
|
||||
self.assertEqual('0', response.headers['Content-Length'])
|
||||
|
||||
|
||||
class TestImagesSerializerWithUnicode(test_utils.BaseTestCase):
|
||||
|
||||
|
|
Loading…
Reference in New Issue