This method does not exist in Python 3, use the "@mock.patch.object" decorator instead. Change-Id: Ic45fea1553320c61be284a9397b54fd32f7d30ef
71 lines
2.6 KiB
Python
71 lines
2.6 KiB
Python
# Copyright 2012 OpenStack Foundation
|
|
# All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import mock
|
|
|
|
from ceilometerclient.common import http
|
|
from ceilometerclient.tests import utils
|
|
|
|
|
|
class HttpClientTest(utils.BaseTestCase):
|
|
url = 'http://localhost'
|
|
|
|
def test_url_generation_trailing_slash_in_base(self):
|
|
client = http.HTTPClient("%s/" % self.url)
|
|
url = client._make_connection_url('/v1/resources')
|
|
self.assertEqual(url, '/v1/resources')
|
|
|
|
def test_url_generation_without_trailing_slash_in_base(self):
|
|
client = http.HTTPClient(self.url)
|
|
url = client._make_connection_url('/v1/resources')
|
|
self.assertEqual(url, '/v1/resources')
|
|
|
|
def test_url_generation_prefix_slash_in_path(self):
|
|
client = http.HTTPClient("%s/" % self.url)
|
|
url = client._make_connection_url('/v1/resources')
|
|
self.assertEqual(url, '/v1/resources')
|
|
|
|
def test_url_generation_without_prefix_slash_in_path(self):
|
|
client = http.HTTPClient(self.url)
|
|
url = client._make_connection_url('v1/resources')
|
|
self.assertEqual(url, '/v1/resources')
|
|
|
|
def test_get_connection(self):
|
|
client = http.HTTPClient(self.url)
|
|
self.assertIsNotNone(client.get_connection())
|
|
|
|
@mock.patch.object(http.HTTPClient, 'get_connection')
|
|
def test_url_generation_with_proxy(self, get_conn):
|
|
client = http.HTTPClient(self.url, token=lambda: 'token')
|
|
client.proxy_url = "http://localhost:3128/"
|
|
conn = mock.MagicMock()
|
|
conn.request.side_effect = Exception("stop")
|
|
get_conn.return_value = conn
|
|
try:
|
|
client._http_request('/v1/resources', 'GET')
|
|
except Exception:
|
|
pass
|
|
conn.request.assert_called_once_with('GET', (self.url.rstrip('/') +
|
|
'/v1/resources'),
|
|
headers=mock.ANY)
|
|
|
|
|
|
class HttpsClientTest(HttpClientTest):
|
|
url = 'https://localhost'
|
|
|
|
|
|
class HttpEndingSlashClientTest(HttpClientTest):
|
|
url = 'http://localhost/'
|