Exemplo n.º 1
0
 def _validate_next_link(self, href_link_mock, item_count,
                         osapi_max_limit, limit, should_link_exist):
     req = mock.MagicMock()
     href_link_mock.return_value = [{"rel": "next",
                                     "href": "fake_link"}]
     self.flags(osapi_max_limit=osapi_max_limit)
     if limit is None:
         params = mock.PropertyMock(return_value=dict())
         limited_list_size = min(item_count, osapi_max_limit)
     else:
         params = mock.PropertyMock(return_value=dict(limit=limit))
         limited_list_size = min(item_count, osapi_max_limit,
                                 limit)
     limited_list = [{"uuid": str(i)} for i in range(limited_list_size)]
     type(req).params = params
     builder = common.ViewBuilder()
     results = builder._get_collection_links(req, limited_list,
                                             mock.sentinel.coll_key,
                                             item_count, "uuid")
     if should_link_exist:
         href_link_mock.assert_called_once_with(limited_list, "uuid",
                                                req,
                                                mock.sentinel.coll_key)
         self.assertThat(results, matchers.HasLength(1))
     else:
         self.assertFalse(href_link_mock.called)
         self.assertThat(results, matchers.HasLength(0))
    def test_update_link_prefix(self):
        vb = common.ViewBuilder()
        result = vb._update_link_prefix("http://192.168.0.243:24/",
                                        "http://127.0.0.1/volume")
        self.assertEqual("http://127.0.0.1/volume", result)

        result = vb._update_link_prefix("http://foo.x.com/v1",
                                        "http://new.prefix.com")
        self.assertEqual("http://new.prefix.com/v1", result)

        result = vb._update_link_prefix(
            "http://foo.x.com/v1",
            "http://new.prefix.com:20455/new_extra_prefix")
        self.assertEqual("http://new.prefix.com:20455/new_extra_prefix/v1",
                         result)
    def _validate_next_link(self, item_count, osapi_max_limit, limit,
                            should_link_exist):
        req = webob.Request.blank('/?limit=%s' % limit if limit else '/')
        link_return = [{"rel": "next", "href": "fake_link"}]
        self.flags(osapi_max_limit=osapi_max_limit)
        if limit is None:
            limited_list_size = min(item_count, osapi_max_limit)
        else:
            limited_list_size = min(item_count, osapi_max_limit, limit)
        limited_list = [{"uuid": str(i)} for i in range(limited_list_size)]
        builder = common.ViewBuilder()

        def get_pagination_params(params,
                                  max_limit=CONF.osapi_max_limit,
                                  original_call=common.get_pagination_params):
            return original_call(params, max_limit)

        def _get_limit_param(params,
                             max_limit=CONF.osapi_max_limit,
                             original_call=common._get_limit_param):
            return original_call(params, max_limit)

        with mock.patch.object(common, 'get_pagination_params',
                               get_pagination_params), \
                mock.patch.object(common, '_get_limit_param',
                                  _get_limit_param), \
                mock.patch.object(common.ViewBuilder, '_generate_next_link',
                                  return_value=link_return) as href_link_mock:
            results = builder._get_collection_links(req, limited_list,
                                                    mock.sentinel.coll_key,
                                                    item_count, "uuid")
        if should_link_exist:
            href_link_mock.assert_called_once_with(limited_list, "uuid", req,
                                                   mock.sentinel.coll_key)
            self.assertThat(results, matchers.HasLength(1))
        else:
            self.assertFalse(href_link_mock.called)
            self.assertThat(results, matchers.HasLength(0))
Exemplo n.º 4
0
 def test_update_link_prefix(self, update_args, expected):
     vb = common.ViewBuilder()
     result = vb._update_link_prefix(*update_args)
     self.assertEqual(expected, result)
Exemplo n.º 5
0
 def test_project_id_in_url(self, project_id, url, expected):
     req = fakes.HTTPRequest.blank(url)
     req.environ['cinder.context'].project_id = project_id
     actual = common.ViewBuilder()._get_project_id_in_url(req)
     self.assertEqual(expected, actual)