Raise the correct exception on archive policy rule not found

Change-Id: Ie75390a1c7c9e23d9c41bf827b64cfda430fa784
Closes-Bug: #1527402
This commit is contained in:
Julien Danjou 2015-12-18 10:11:23 +01:00
parent 5f892efe41
commit 5f2fd1cef7
2 changed files with 33 additions and 2 deletions

View File

@ -165,8 +165,8 @@ _error_classes = [BadRequest, Unauthorized, Forbidden, NotFound,
MethodNotAllowed, NotAcceptable, Conflict, OverLimit,
RateLimit, NotImplemented]
_error_classes_enhanced = {
NotFound: [MetricNotFound, ResourceNotFound, ArchivePolicyNotFound,
ArchivePolicyRuleNotFound],
NotFound: [MetricNotFound, ResourceNotFound, ArchivePolicyRuleNotFound,
ArchivePolicyNotFound],
Conflict: [NamedMetricAreadyExists, ResourceAlreadyExists,
ArchivePolicyAlreadyExists,
ArchivePolicyRuleAlreadyExists]

View File

@ -0,0 +1,31 @@
# -*- encoding: utf-8 -*-
#
# 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 json
from oslotest import base
from requests import models
from gnocchiclient import exceptions
class ExceptionsTest(base.BaseTestCase):
def test_from_response(self):
r = models.Response()
r.status_code = 404
r.headers['Content-Type'] = "application/json"
r._content = json.dumps(
{"description": "Archive policy rule foobar does not exist"}
).encode('utf-8')
exc = exceptions.from_response(r, "http://foobar")
self.assertIsInstance(exc, exceptions.ArchivePolicyRuleNotFound)