summaryrefslogtreecommitdiff
path: root/glance/tests/unit/v0_1/test_search.py
diff options
context:
space:
mode:
Diffstat (limited to 'glance/tests/unit/v0_1/test_search.py')
-rwxr-xr-xglance/tests/unit/v0_1/test_search.py80
1 files changed, 78 insertions, 2 deletions
diff --git a/glance/tests/unit/v0_1/test_search.py b/glance/tests/unit/v0_1/test_search.py
index d5782a966..09a083cf6 100755
--- a/glance/tests/unit/v0_1/test_search.py
+++ b/glance/tests/unit/v0_1/test_search.py
@@ -18,6 +18,7 @@ from oslo.serialization import jsonutils
import webob.exc
from glance.common import exception
+from glance.common import utils
import glance.gateway
import glance.search
from glance.search.api.v0_1 import search as search
@@ -234,12 +235,52 @@ class TestSearchController(base.IsolatedUnitTest):
webob.exc.HTTPInternalServerError, self.search_controller.index,
request, actions)
+ def test_plugins_info(self):
+ request = unit_test_utils.get_fake_request()
+ self.search_controller.plugins_info = mock.Mock(return_value="{}")
+ self.search_controller.plugins_info(request)
+ self.search_controller.plugins_info.assert_called_once_with(request)
+
+ def test_plugins_info_repo(self):
+ request = unit_test_utils.get_fake_request()
+ repo = glance.search.CatalogSearchRepo
+ repo.plugins_info = mock.Mock(return_value="{}")
+ self.search_controller.plugins_info(request)
+ repo.plugins_info.assert_called_once_with()
+
+ def test_plugins_info_forbidden(self):
+ request = unit_test_utils.get_fake_request()
+ repo = glance.search.CatalogSearchRepo
+ repo.plugins_info = mock.Mock(side_effect=exception.Forbidden)
+
+ self.assertRaises(
+ webob.exc.HTTPForbidden, self.search_controller.plugins_info,
+ request)
+
+ def test_plugins_info_not_found(self):
+ request = unit_test_utils.get_fake_request()
+ repo = glance.search.CatalogSearchRepo
+ repo.plugins_info = mock.Mock(side_effect=exception.NotFound)
+
+ self.assertRaises(webob.exc.HTTPNotFound,
+ self.search_controller.plugins_info, request)
+
+ def test_plugins_info_internal_server_error(self):
+ request = unit_test_utils.get_fake_request()
+ repo = glance.search.CatalogSearchRepo
+ repo.plugins_info = mock.Mock(side_effect=Exception)
+
+ self.assertRaises(webob.exc.HTTPInternalServerError,
+ self.search_controller.plugins_info, request)
+
class TestSearchDeserializer(test_utils.BaseTestCase):
def setUp(self):
super(TestSearchDeserializer, self).setUp()
- self.deserializer = search.RequestDeserializer(search.get_plugins())
+ self.deserializer = search.RequestDeserializer(
+ utils.get_search_plugins()
+ )
def test_single_index(self):
request = unit_test_utils.get_fake_request()
@@ -411,7 +452,9 @@ class TestIndexDeserializer(test_utils.BaseTestCase):
def setUp(self):
super(TestIndexDeserializer, self).setUp()
- self.deserializer = search.RequestDeserializer(search.get_plugins())
+ self.deserializer = search.RequestDeserializer(
+ utils.get_search_plugins()
+ )
def test_empty_request(self):
request = unit_test_utils.get_fake_request()
@@ -874,6 +917,39 @@ class TestResponseSerializer(test_utils.BaseTestCase):
super(TestResponseSerializer, self).setUp()
self.serializer = search.ResponseSerializer()
+ def test_plugins_info(self):
+ expected = {
+ "plugins": [
+ {
+ "index": "glance",
+ "type": "image"
+ },
+ {
+ "index": "glance",
+ "type": "metadef"
+ }
+ ]
+ }
+
+ request = webob.Request.blank('/v0.1/search')
+ response = webob.Response(request=request)
+ result = {
+ "plugins": [
+ {
+ "index": "glance",
+ "type": "image"
+ },
+ {
+ "index": "glance",
+ "type": "metadef"
+ }
+ ]
+ }
+ self.serializer.search(response, result)
+ actual = jsonutils.loads(response.body)
+ self.assertEqual(expected, actual)
+ self.assertEqual('application/json', response.content_type)
+
def test_search(self):
expected = [{
'id': '1',