python-pankoclient/pankoclient/tests/unit/common/test_utils.py

51 lines
1.9 KiB
Python

# Copyright 2016 Huawei, Inc. 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 pankoclient.common import utils
from pankoclient.tests.unit import base
class TestUtils(base.TestBase):
def test_get_response_body_json(self):
resp = mock.Mock()
resp.headers = {'Content-Type': 'application/json'}
resp.json.return_value = mock.sentinel.fake_body
body = utils.get_response_body(resp)
self.assertEqual(mock.sentinel.fake_body, body)
def test_get_response_body_json_value_error(self):
resp = mock.Mock()
resp.content = mock.sentinel.fake_content
resp.headers = {'Content-Type': 'application/json'}
resp.json.side_effect = ValueError('json format error.')
body = utils.get_response_body(resp)
self.assertEqual(mock.sentinel.fake_content, body)
def test_get_response_body_raw(self):
resp = mock.Mock()
resp.headers = {'Content-Type': 'application/octet-stream'}
resp.body.return_value = mock.sentinel.fake_body
body = utils.get_response_body(resp)
self.assertEqual(mock.sentinel.fake_body, body)
def test_get_response_body_unknown_type(self):
resp = mock.Mock()
resp.headers = {'Content-Type': 'application/unknown'}
body = utils.get_response_body(resp)
self.assertIsNone(body)