
1.As mentioned in [1], we should avoid using six.iteritems to achieve iterators. We can use dict.items instead, as it will return iterators in PY3 as well. And dict.items/keys will more readable. 2.In py2, the performance about list should be negligible, see the link [2]. [1] https://wiki.openstack.org/wiki/Python3 [2] http://lists.openstack.org/pipermail/openstack-dev/2015-June/066391.html Change-Id: Ic4fe5a3badfda93af11683215f0dad9b886e4791
52 lines
1.8 KiB
Python
52 lines
1.8 KiB
Python
# Copyright 2013 - Noorul Islam K M
|
|
#
|
|
# 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.
|
|
|
|
from solumclient.common.apiclient import exceptions
|
|
from solumclient.common import exc
|
|
from solumclient.tests import base
|
|
|
|
|
|
class FakeResponse(object):
|
|
json_data = {}
|
|
|
|
def __init__(self, **kwargs):
|
|
for key, value in kwargs.items():
|
|
setattr(self, key, value)
|
|
|
|
def json(self):
|
|
return self.json_data
|
|
|
|
|
|
class ExceptionTest(base.TestCase):
|
|
|
|
def test_from_response_with_status_code_404(self):
|
|
json_data = {"faultstring": "fake message",
|
|
"debuginfo": "fake details"}
|
|
method = 'GET'
|
|
status_code = 404
|
|
url = 'http://example.com:9777/v1/assemblies/fake-id'
|
|
ex = exc.from_response(
|
|
FakeResponse(status_code=status_code,
|
|
headers={"Content-Type": "application/json"},
|
|
json_data=json_data),
|
|
method,
|
|
url
|
|
)
|
|
self.assertIsInstance(ex, exceptions.HttpError)
|
|
self.assertEqual(json_data["faultstring"], ex.message)
|
|
self.assertEqual(json_data["debuginfo"], ex.details)
|
|
self.assertEqual(method, ex.method)
|
|
self.assertEqual(url, ex.url)
|
|
self.assertEqual(status_code, ex.http_status)
|