use HTTPStatus instead of direct code
Python introduced http.HTTPStatus since version 3.5, and Wallaby has targeted a minimum version of python 3.6. Change-Id: I45f732f0f59b8fae831bb6c07f4fdd98cdd7409a
This commit is contained in:
parent
546b730c9b
commit
c28756c48b
@ -57,6 +57,7 @@ are dynamically loaded by Watcher at launch time.
|
||||
|
||||
import datetime
|
||||
|
||||
from http import HTTPStatus
|
||||
import pecan
|
||||
from pecan import rest
|
||||
import wsme
|
||||
@ -362,7 +363,7 @@ class ActionsController(rest.RestController):
|
||||
|
||||
return Action.convert_with_links(action)
|
||||
|
||||
@wsme_pecan.wsexpose(Action, body=Action, status_code=201)
|
||||
@wsme_pecan.wsexpose(Action, body=Action, status_code=HTTPStatus.CREATED)
|
||||
def post(self, action):
|
||||
"""Create a new action(forbidden).
|
||||
|
||||
@ -422,7 +423,7 @@ class ActionsController(rest.RestController):
|
||||
action_to_update.save()
|
||||
return Action.convert_with_links(action_to_update)
|
||||
|
||||
@wsme_pecan.wsexpose(None, types.uuid, status_code=204)
|
||||
@wsme_pecan.wsexpose(None, types.uuid, status_code=HTTPStatus.NO_CONTENT)
|
||||
def delete(self, action_uuid):
|
||||
"""Delete a action(forbidden).
|
||||
|
||||
|
@ -56,6 +56,7 @@ state machine <action_plan_state_machine>`.
|
||||
|
||||
import datetime
|
||||
|
||||
from http import HTTPStatus
|
||||
from oslo_log import log
|
||||
import pecan
|
||||
from pecan import rest
|
||||
@ -460,7 +461,7 @@ class ActionPlansController(rest.RestController):
|
||||
|
||||
return ActionPlan.convert_with_links(action_plan)
|
||||
|
||||
@wsme_pecan.wsexpose(None, types.uuid, status_code=204)
|
||||
@wsme_pecan.wsexpose(None, types.uuid, status_code=HTTPStatus.NO_CONTENT)
|
||||
def delete(self, action_plan_uuid):
|
||||
"""Delete an action plan.
|
||||
|
||||
|
@ -32,6 +32,7 @@ states, visit :ref:`the Audit State machine <audit_state_machine>`.
|
||||
import datetime
|
||||
from dateutil import tz
|
||||
|
||||
from http import HTTPStatus
|
||||
import pecan
|
||||
from pecan import rest
|
||||
import wsme
|
||||
@ -595,7 +596,8 @@ class AuditsController(rest.RestController):
|
||||
|
||||
return Audit.convert_with_links(rpc_audit)
|
||||
|
||||
@wsme_pecan.wsexpose(Audit, body=AuditPostType, status_code=201)
|
||||
@wsme_pecan.wsexpose(Audit, body=AuditPostType,
|
||||
status_code=HTTPStatus.CREATED)
|
||||
def post(self, audit_p):
|
||||
"""Create a new audit.
|
||||
|
||||
@ -717,7 +719,7 @@ class AuditsController(rest.RestController):
|
||||
audit_to_update.save()
|
||||
return Audit.convert_with_links(audit_to_update)
|
||||
|
||||
@wsme_pecan.wsexpose(None, wtypes.text, status_code=204)
|
||||
@wsme_pecan.wsexpose(None, wtypes.text, status_code=HTTPStatus.NO_CONTENT)
|
||||
def delete(self, audit):
|
||||
"""Delete an audit.
|
||||
|
||||
|
@ -45,6 +45,7 @@ will be launched automatically or will need a manual confirmation from the
|
||||
|
||||
import datetime
|
||||
|
||||
from http import HTTPStatus
|
||||
import pecan
|
||||
from pecan import rest
|
||||
import wsme
|
||||
@ -618,7 +619,7 @@ class AuditTemplatesController(rest.RestController):
|
||||
|
||||
@wsme.validate(types.uuid, AuditTemplatePostType)
|
||||
@wsme_pecan.wsexpose(AuditTemplate, body=AuditTemplatePostType,
|
||||
status_code=201)
|
||||
status_code=HTTPStatus.CREATED)
|
||||
def post(self, audit_template_postdata):
|
||||
"""Create a new audit template.
|
||||
|
||||
@ -694,7 +695,7 @@ class AuditTemplatesController(rest.RestController):
|
||||
audit_template_to_update.save()
|
||||
return AuditTemplate.convert_with_links(audit_template_to_update)
|
||||
|
||||
@wsme_pecan.wsexpose(None, wtypes.text, status_code=204)
|
||||
@wsme_pecan.wsexpose(None, wtypes.text, status_code=HTTPStatus.NO_CONTENT)
|
||||
def delete(self, audit_template):
|
||||
"""Delete a audit template.
|
||||
|
||||
|
@ -14,6 +14,7 @@
|
||||
Webhook endpoint for Watcher v1 REST API.
|
||||
"""
|
||||
|
||||
from http import HTTPStatus
|
||||
from oslo_log import log
|
||||
import pecan
|
||||
from pecan import rest
|
||||
@ -36,7 +37,7 @@ class WebhookController(rest.RestController):
|
||||
self.dc_client = rpcapi.DecisionEngineAPI()
|
||||
|
||||
@wsme_pecan.wsexpose(None, wtypes.text, body=types.jsontype,
|
||||
status_code=202)
|
||||
status_code=HTTPStatus.ACCEPTED)
|
||||
def post(self, audit_ident, body):
|
||||
"""Trigger the given audit.
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
# under the License.
|
||||
|
||||
|
||||
from http import client as http_client
|
||||
from http import HTTPStatus
|
||||
from oslo_config import cfg
|
||||
from pecan import hooks
|
||||
|
||||
@ -91,8 +91,8 @@ class NoExceptionTracebackHook(hooks.PecanHook):
|
||||
# Do nothing if there is no error.
|
||||
# Status codes in the range 200 (OK) to 399 (400 = BAD_REQUEST) are not
|
||||
# an error.
|
||||
if (http_client.OK <= state.response.status_int <
|
||||
http_client.BAD_REQUEST):
|
||||
if (HTTPStatus.OK <= state.response.status_int <
|
||||
HTTPStatus.BAD_REQUEST):
|
||||
return
|
||||
|
||||
json_body = state.response.json
|
||||
|
@ -25,6 +25,7 @@ SHOULD include dedicated exception logging.
|
||||
import functools
|
||||
import sys
|
||||
|
||||
from http import HTTPStatus
|
||||
from keystoneclient import exceptions as keystone_exceptions
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log
|
||||
@ -62,7 +63,7 @@ class WatcherException(Exception):
|
||||
|
||||
"""
|
||||
msg_fmt = _("An unknown exception occurred")
|
||||
code = 500
|
||||
code = HTTPStatus.INTERNAL_SERVER_ERROR
|
||||
headers = {}
|
||||
safe = False
|
||||
|
||||
@ -114,12 +115,12 @@ class UnsupportedError(WatcherException):
|
||||
|
||||
class NotAuthorized(WatcherException):
|
||||
msg_fmt = _("Not authorized")
|
||||
code = 403
|
||||
code = HTTPStatus.FORBIDDEN
|
||||
|
||||
|
||||
class NotAcceptable(WatcherException):
|
||||
msg_fmt = _("Request not acceptable.")
|
||||
code = 406
|
||||
code = HTTPStatus.NOT_ACCEPTABLE
|
||||
|
||||
|
||||
class PolicyNotAuthorized(NotAuthorized):
|
||||
@ -132,7 +133,7 @@ class OperationNotPermitted(NotAuthorized):
|
||||
|
||||
class Invalid(WatcherException, ValueError):
|
||||
msg_fmt = _("Unacceptable parameters")
|
||||
code = 400
|
||||
code = HTTPStatus.BAD_REQUEST
|
||||
|
||||
|
||||
class ObjectNotFound(WatcherException):
|
||||
@ -141,12 +142,12 @@ class ObjectNotFound(WatcherException):
|
||||
|
||||
class Conflict(WatcherException):
|
||||
msg_fmt = _('Conflict')
|
||||
code = 409
|
||||
code = HTTPStatus.CONFLICT
|
||||
|
||||
|
||||
class ResourceNotFound(ObjectNotFound):
|
||||
msg_fmt = _("The %(name)s resource %(id)s could not be found")
|
||||
code = 404
|
||||
code = HTTPStatus.NOT_FOUND
|
||||
|
||||
|
||||
class InvalidParameter(Invalid):
|
||||
|
@ -11,6 +11,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from http import HTTPStatus
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
|
||||
@ -53,7 +54,7 @@ class PlacementHelper(object):
|
||||
if rp_name:
|
||||
url += '?name=%s' % rp_name
|
||||
resp = self.get(url)
|
||||
if resp.status_code == 200:
|
||||
if resp.status_code == HTTPStatus.OK:
|
||||
json_resp = resp.json()
|
||||
return json_resp['resource_providers']
|
||||
|
||||
@ -77,7 +78,7 @@ class PlacementHelper(object):
|
||||
"""
|
||||
url = '/resource_providers/%s/inventories' % rp_uuid
|
||||
resp = self.get(url)
|
||||
if resp.status_code == 200:
|
||||
if resp.status_code == HTTPStatus.OK:
|
||||
json = resp.json()
|
||||
return json['inventories']
|
||||
msg = ("Failed to get resource provider %(rp_uuid)s inventories. "
|
||||
@ -97,7 +98,7 @@ class PlacementHelper(object):
|
||||
"""
|
||||
resp = self.get("/resource_providers/%s/traits" % rp_uuid)
|
||||
|
||||
if resp.status_code == 200:
|
||||
if resp.status_code == HTTPStatus.OK:
|
||||
json = resp.json()
|
||||
return json['traits']
|
||||
msg = ("Failed to get resource provider %(rp_uuid)s traits. "
|
||||
@ -118,7 +119,7 @@ class PlacementHelper(object):
|
||||
"""
|
||||
url = '/allocations/%s' % consumer_uuid
|
||||
resp = self.get(url)
|
||||
if resp.status_code == 200:
|
||||
if resp.status_code == HTTPStatus.OK:
|
||||
json = resp.json()
|
||||
return json['allocations']
|
||||
msg = ("Failed to get allocations for consumer %(c_uuid). "
|
||||
@ -139,7 +140,7 @@ class PlacementHelper(object):
|
||||
"""
|
||||
url = '/resource_providers/%s/usages' % rp_uuid
|
||||
resp = self.get(url)
|
||||
if resp.status_code == 200:
|
||||
if resp.status_code == HTTPStatus.OK:
|
||||
json = resp.json()
|
||||
return json['usages']
|
||||
msg = ("Failed to get resource provider %(rp_uuid)s usages. "
|
||||
@ -164,7 +165,7 @@ class PlacementHelper(object):
|
||||
"""
|
||||
url = "/allocation_candidates?%s" % resources
|
||||
resp = self.get(url)
|
||||
if resp.status_code == 200:
|
||||
if resp.status_code == HTTPStatus.OK:
|
||||
data = resp.json()
|
||||
return data['provider_summaries']
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
from urllib import parse as urlparse
|
||||
|
||||
from http import HTTPStatus
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log
|
||||
|
||||
@ -138,11 +139,11 @@ class GrafanaHelper(base.DataSourceBase):
|
||||
|
||||
resp = requests.get(self._base_url + str(project_id) + '/query',
|
||||
params=params, headers=self._headers)
|
||||
if resp.status_code == 200:
|
||||
if resp.status_code == HTTPStatus.OK:
|
||||
return resp
|
||||
elif resp.status_code == 400:
|
||||
elif resp.status_code == HTTPStatus.BAD_REQUEST:
|
||||
LOG.error("Query for metric is invalid")
|
||||
elif resp.status_code == 401:
|
||||
elif resp.status_code == HTTPStatus.UNAUTHORIZED:
|
||||
LOG.error("Authorization token is invalid")
|
||||
raise exception.DataSourceNotAvailable(self.NAME)
|
||||
|
||||
|
@ -13,6 +13,8 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from http import HTTPStatus
|
||||
|
||||
from watcher.tests.api import base
|
||||
|
||||
|
||||
@ -25,6 +27,6 @@ class TestBase(base.FunctionalTest):
|
||||
response = self.get_json('/bad/path',
|
||||
expect_errors=True,
|
||||
headers={"Accept": "application/json"})
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
self.assertEqual("application/json", response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
@ -14,6 +14,7 @@ import datetime
|
||||
import itertools
|
||||
from unittest import mock
|
||||
|
||||
from http import HTTPStatus
|
||||
from oslo_config import cfg
|
||||
from oslo_serialization import jsonutils
|
||||
from wsme import types as wtypes
|
||||
@ -102,7 +103,7 @@ class TestListAction(api_base.FunctionalTest):
|
||||
|
||||
response = self.get_json('/actions/%s' % action['uuid'],
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_detail(self):
|
||||
action = obj_utils.create_test_action(self.context, parents=None)
|
||||
@ -125,7 +126,7 @@ class TestListAction(api_base.FunctionalTest):
|
||||
action = obj_utils.create_test_action(self.context, parents=None)
|
||||
response = self.get_json('/actions/%s/detail' % action['uuid'],
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_many(self):
|
||||
action_list = []
|
||||
@ -266,7 +267,7 @@ class TestListAction(api_base.FunctionalTest):
|
||||
url = '/actions?action_plan_uuid=%s&audit_uuid=%s' % (
|
||||
action_plan.uuid, self.audit.uuid)
|
||||
response = self.get_json(url, expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
|
||||
def test_many_with_sort_key_uuid(self):
|
||||
action_plan = obj_utils.create_test_action_plan(
|
||||
@ -327,7 +328,7 @@ class TestListAction(api_base.FunctionalTest):
|
||||
response = self.get_json(
|
||||
'/actions?sort_key=%s' % 'bad_name',
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
|
||||
def test_many_with_soft_deleted_action_plan_uuid(self):
|
||||
action_plan1 = obj_utils.create_test_action_plan(
|
||||
@ -488,7 +489,7 @@ class TestPatch(api_base.FunctionalTest):
|
||||
[{'path': '/state', 'value': new_state, 'op': 'replace'}],
|
||||
expect_errors=True)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(403, response.status_int)
|
||||
self.assertEqual(HTTPStatus.FORBIDDEN, response.status_int)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
|
||||
@ -516,7 +517,7 @@ class TestDelete(api_base.FunctionalTest):
|
||||
mock_utcnow.return_value = test_time
|
||||
response = self.delete('/actions/%s' % self.action.uuid,
|
||||
expect_errors=True)
|
||||
self.assertEqual(403, response.status_int)
|
||||
self.assertEqual(HTTPStatus.FORBIDDEN, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -536,7 +537,7 @@ class TestActionPolicyEnforcement(api_base.FunctionalTest):
|
||||
"default": "rule:admin_api",
|
||||
rule: "rule:defaut"})
|
||||
response = func(*arg, **kwarg)
|
||||
self.assertEqual(403, response.status_int)
|
||||
self.assertEqual(HTTPStatus.FORBIDDEN, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(
|
||||
"Policy doesn't allow %s to be performed." % rule,
|
||||
|
@ -14,6 +14,7 @@ import datetime
|
||||
import itertools
|
||||
from unittest import mock
|
||||
|
||||
from http import HTTPStatus
|
||||
from oslo_config import cfg
|
||||
from oslo_serialization import jsonutils
|
||||
|
||||
@ -87,7 +88,7 @@ class TestListActionPlan(api_base.FunctionalTest):
|
||||
|
||||
response = self.get_json('/action_plans/%s' % action_plan['uuid'],
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_detail(self):
|
||||
action_plan = obj_utils.create_test_action_plan(self.context)
|
||||
@ -113,7 +114,7 @@ class TestListActionPlan(api_base.FunctionalTest):
|
||||
response = self.get_json(
|
||||
'/action_plan/%s/detail' % action_plan['uuid'],
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_many(self):
|
||||
action_plan_list = []
|
||||
@ -260,7 +261,7 @@ class TestListActionPlan(api_base.FunctionalTest):
|
||||
response = self.get_json(
|
||||
'/action_plans?sort_key=%s' % 'bad_name',
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
|
||||
def test_links(self):
|
||||
uuid = utils.generate_uuid()
|
||||
@ -317,7 +318,7 @@ class TestDelete(api_base.FunctionalTest):
|
||||
def test_delete_action_plan_without_action(self):
|
||||
response = self.delete('/action_plans/%s' % self.action_plan.uuid,
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
self.action_plan.state = objects.action_plan.State.SUCCEEDED
|
||||
@ -325,7 +326,7 @@ class TestDelete(api_base.FunctionalTest):
|
||||
self.delete('/action_plans/%s' % self.action_plan.uuid)
|
||||
response = self.get_json('/action_plans/%s' % self.action_plan.uuid,
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -345,20 +346,20 @@ class TestDelete(api_base.FunctionalTest):
|
||||
expect_errors=True)
|
||||
|
||||
# The action plan does not exist anymore
|
||||
self.assertEqual(404, ap_response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, ap_response.status_int)
|
||||
self.assertEqual('application/json', ap_response.content_type)
|
||||
self.assertTrue(ap_response.json['error_message'])
|
||||
|
||||
# Nor does the action
|
||||
self.assertEqual(0, len(acts_response['actions']))
|
||||
self.assertEqual(404, act_response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, act_response.status_int)
|
||||
self.assertEqual('application/json', act_response.content_type)
|
||||
self.assertTrue(act_response.json['error_message'])
|
||||
|
||||
def test_delete_action_plan_not_found(self):
|
||||
uuid = utils.generate_uuid()
|
||||
response = self.delete('/action_plans/%s' % uuid, expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -388,7 +389,7 @@ class TestStart(api_base.FunctionalTest):
|
||||
uuid = utils.generate_uuid()
|
||||
response = self.post('/v1/action_plans/%s/%s' %
|
||||
(uuid, 'start'), expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -401,11 +402,11 @@ class TestStart(api_base.FunctionalTest):
|
||||
response = self.post('/v1/action_plans/%s/%s/'
|
||||
% (self.action_plan.uuid, 'start'),
|
||||
expect_errors=True)
|
||||
self.assertEqual(200, response.status_int)
|
||||
self.assertEqual(HTTPStatus.OK, response.status_int)
|
||||
act_response = self.get_json(
|
||||
'/actions/%s' % action.uuid,
|
||||
expect_errors=True)
|
||||
self.assertEqual(200, act_response.status_int)
|
||||
self.assertEqual(HTTPStatus.OK, act_response.status_int)
|
||||
self.assertEqual('PENDING', act_response.json['state'])
|
||||
self.assertEqual('application/json', act_response.content_type)
|
||||
|
||||
@ -445,7 +446,7 @@ class TestPatch(api_base.FunctionalTest):
|
||||
expect_errors=True)
|
||||
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
def test_replace_non_existent_action_plan_denied(self):
|
||||
@ -455,7 +456,7 @@ class TestPatch(api_base.FunctionalTest):
|
||||
'value': objects.action_plan.State.PENDING,
|
||||
'op': 'replace'}],
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -465,7 +466,7 @@ class TestPatch(api_base.FunctionalTest):
|
||||
[{'path': '/foo', 'value': 'bar', 'op': 'add'}],
|
||||
expect_errors=True)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
def test_remove_denied(self):
|
||||
@ -480,7 +481,7 @@ class TestPatch(api_base.FunctionalTest):
|
||||
expect_errors=True)
|
||||
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
def test_remove_uuid_denied(self):
|
||||
@ -488,7 +489,7 @@ class TestPatch(api_base.FunctionalTest):
|
||||
'/action_plans/%s' % self.action_plan.uuid,
|
||||
[{'path': '/uuid', 'op': 'remove'}],
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -497,7 +498,7 @@ class TestPatch(api_base.FunctionalTest):
|
||||
'/action_plans/%s' % self.action_plan.uuid,
|
||||
[{'path': '/non-existent', 'op': 'remove'}],
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_code)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_code)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -512,7 +513,7 @@ class TestPatch(api_base.FunctionalTest):
|
||||
[{'path': '/state', 'value': new_state,
|
||||
'op': 'replace'}])
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(200, response.status_code)
|
||||
self.assertEqual(HTTPStatus.OK, response.status_code)
|
||||
applier_mock.assert_called_once_with(mock.ANY,
|
||||
self.action_plan.uuid)
|
||||
|
||||
@ -579,7 +580,7 @@ class TestPatchStateTransitionDenied(api_base.FunctionalTest):
|
||||
|
||||
self.assertNotEqual(self.new_state, initial_ap['state'])
|
||||
self.assertEqual(self.original_state, updated_ap['state'])
|
||||
self.assertEqual(400, response.status_code)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_code)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -618,7 +619,7 @@ class TestPatchStateTransitionOk(api_base.FunctionalTest):
|
||||
self.assertNotEqual(self.new_state, initial_ap['state'])
|
||||
self.assertEqual(self.new_state, updated_ap['state'])
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(200, response.status_code)
|
||||
self.assertEqual(HTTPStatus.OK, response.status_code)
|
||||
|
||||
|
||||
class TestActionPlanPolicyEnforcement(api_base.FunctionalTest):
|
||||
@ -635,7 +636,7 @@ class TestActionPlanPolicyEnforcement(api_base.FunctionalTest):
|
||||
"default": "rule:admin_api",
|
||||
rule: "rule:defaut"})
|
||||
response = func(*arg, **kwarg)
|
||||
self.assertEqual(403, response.status_int)
|
||||
self.assertEqual(HTTPStatus.FORBIDDEN, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(
|
||||
"Policy doesn't allow %s to be performed." % rule,
|
||||
|
@ -15,6 +15,7 @@ import itertools
|
||||
from unittest import mock
|
||||
from urllib import parse as urlparse
|
||||
|
||||
from http import HTTPStatus
|
||||
from oslo_config import cfg
|
||||
from oslo_serialization import jsonutils
|
||||
from oslo_utils import timeutils
|
||||
@ -126,7 +127,7 @@ class TestListAuditTemplate(FunctionalTestWithSetup):
|
||||
response = self.get_json(
|
||||
'/audit_templates/%s' % audit_template['uuid'],
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_detail(self):
|
||||
audit_template = obj_utils.create_test_audit_template(self.context)
|
||||
@ -152,7 +153,7 @@ class TestListAuditTemplate(FunctionalTestWithSetup):
|
||||
response = self.get_json(
|
||||
'/audit_templates/%s/detail' % audit_template['uuid'],
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_many(self):
|
||||
audit_template_list = []
|
||||
@ -336,7 +337,7 @@ class TestListAuditTemplate(FunctionalTestWithSetup):
|
||||
response = self.get_json(
|
||||
'/audit_templates?sort_key=%s' % 'goal_bad_name',
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
|
||||
|
||||
class TestPatch(FunctionalTestWithSetup):
|
||||
@ -362,7 +363,7 @@ class TestPatch(FunctionalTestWithSetup):
|
||||
[{'path': '/goal', 'value': new_goal_uuid,
|
||||
'op': 'replace'}])
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(200, response.status_code)
|
||||
self.assertEqual(HTTPStatus.OK, response.status_code)
|
||||
|
||||
response = self.get_json(
|
||||
'/audit_templates/%s' % self.audit_template.uuid)
|
||||
@ -386,7 +387,7 @@ class TestPatch(FunctionalTestWithSetup):
|
||||
[{'path': '/goal', 'value': new_goal_uuid,
|
||||
'op': 'replace'}])
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(200, response.status_code)
|
||||
self.assertEqual(HTTPStatus.OK, response.status_code)
|
||||
|
||||
response = self.get_json(
|
||||
'/audit_templates/%s' % self.audit_template.name)
|
||||
@ -401,7 +402,7 @@ class TestPatch(FunctionalTestWithSetup):
|
||||
[{'path': '/goal', 'value': self.fake_goal1.uuid,
|
||||
'op': 'replace'}],
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -416,7 +417,7 @@ class TestPatch(FunctionalTestWithSetup):
|
||||
[{'path': '/goal', 'value': utils.generate_uuid(),
|
||||
'op': 'replace'}],
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
assert not cn_mock.called
|
||||
|
||||
def test_add_goal_uuid(self):
|
||||
@ -426,7 +427,7 @@ class TestPatch(FunctionalTestWithSetup):
|
||||
'value': self.fake_goal2.uuid,
|
||||
'op': 'add'}])
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(200, response.status_int)
|
||||
self.assertEqual(HTTPStatus.OK, response.status_int)
|
||||
|
||||
response = self.get_json(
|
||||
'/audit_templates/%s' % self.audit_template.uuid)
|
||||
@ -439,7 +440,7 @@ class TestPatch(FunctionalTestWithSetup):
|
||||
'value': self.fake_strategy1.uuid,
|
||||
'op': 'add'}])
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(200, response.status_int)
|
||||
self.assertEqual(HTTPStatus.OK, response.status_int)
|
||||
|
||||
response = self.get_json(
|
||||
'/audit_templates/%s' % self.audit_template.uuid)
|
||||
@ -452,7 +453,7 @@ class TestPatch(FunctionalTestWithSetup):
|
||||
'value': self.fake_strategy2['uuid'],
|
||||
'op': 'replace'}])
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(200, response.status_int)
|
||||
self.assertEqual(HTTPStatus.OK, response.status_int)
|
||||
|
||||
response = self.get_json(
|
||||
'/audit_templates/%s' % self.audit_template.uuid)
|
||||
@ -466,7 +467,7 @@ class TestPatch(FunctionalTestWithSetup):
|
||||
'value': utils.generate_uuid(), # Does not exist
|
||||
'op': 'replace'}], expect_errors=True)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
def test_add_non_existent_property(self):
|
||||
@ -475,7 +476,7 @@ class TestPatch(FunctionalTestWithSetup):
|
||||
[{'path': '/foo', 'value': 'bar', 'op': 'add'}],
|
||||
expect_errors=True)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
def test_remove_strategy(self):
|
||||
@ -492,7 +493,7 @@ class TestPatch(FunctionalTestWithSetup):
|
||||
'/audit_templates/%s' % self.audit_template.uuid,
|
||||
[{'path': '/strategy', 'op': 'remove'}])
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(200, response.status_code)
|
||||
self.assertEqual(HTTPStatus.OK, response.status_code)
|
||||
|
||||
def test_remove_goal(self):
|
||||
response = self.get_json(
|
||||
@ -503,7 +504,7 @@ class TestPatch(FunctionalTestWithSetup):
|
||||
'/audit_templates/%s' % self.audit_template.uuid,
|
||||
[{'path': '/goal', 'op': 'remove'}],
|
||||
expect_errors=True)
|
||||
self.assertEqual(403, response.status_code)
|
||||
self.assertEqual(HTTPStatus.FORBIDDEN, response.status_code)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -512,7 +513,7 @@ class TestPatch(FunctionalTestWithSetup):
|
||||
'/audit_templates/%s' % self.audit_template.uuid,
|
||||
[{'path': '/uuid', 'op': 'remove'}],
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -521,7 +522,7 @@ class TestPatch(FunctionalTestWithSetup):
|
||||
'/audit_templates/%s' % self.audit_template.uuid,
|
||||
[{'path': '/non-existent', 'op': 'remove'}],
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_code)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_code)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -538,7 +539,7 @@ class TestPost(FunctionalTestWithSetup):
|
||||
|
||||
response = self.post_json('/audit_templates', audit_template_dict)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
# Check location header
|
||||
self.assertIsNotNone(response.location)
|
||||
expected_location = \
|
||||
@ -565,7 +566,7 @@ class TestPost(FunctionalTestWithSetup):
|
||||
|
||||
response = self.post_json('/audit_templates', audit_template_dict)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
# Check location header
|
||||
self.assertIsNotNone(response.location)
|
||||
expected_location = \
|
||||
@ -613,7 +614,8 @@ class TestPost(FunctionalTestWithSetup):
|
||||
strategy=self.fake_strategy1.uuid, scope=scope)
|
||||
response = self.post_json('/audit_templates',
|
||||
audit_template_dict, expect_errors=True)
|
||||
self.assertEqual(500, response.status_int)
|
||||
self.assertEqual(HTTPStatus.INTERNAL_SERVER_ERROR,
|
||||
response.status_int)
|
||||
|
||||
def test_create_audit_template_does_autogenerate_id(self):
|
||||
audit_template_dict = post_get_test_audit_template(
|
||||
@ -635,7 +637,7 @@ class TestPost(FunctionalTestWithSetup):
|
||||
|
||||
response = self.post_json('/audit_templates', audit_template_dict)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
self.assertTrue(utils.is_uuid_like(response.json['uuid']))
|
||||
|
||||
def test_create_audit_template_with_invalid_goal(self):
|
||||
@ -648,7 +650,7 @@ class TestPost(FunctionalTestWithSetup):
|
||||
goal_uuid=utils.generate_uuid())
|
||||
response = self.post_json('/audit_templates',
|
||||
audit_template_dict, expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
assert not cn_mock.called
|
||||
|
||||
def test_create_audit_template_with_invalid_strategy(self):
|
||||
@ -662,7 +664,7 @@ class TestPost(FunctionalTestWithSetup):
|
||||
strategy_uuid=utils.generate_uuid())
|
||||
response = self.post_json('/audit_templates',
|
||||
audit_template_dict, expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
assert not cn_mock.called
|
||||
|
||||
def test_create_audit_template_with_unrelated_strategy(self):
|
||||
@ -676,7 +678,7 @@ class TestPost(FunctionalTestWithSetup):
|
||||
strategy=self.fake_strategy2['uuid'])
|
||||
response = self.post_json('/audit_templates',
|
||||
audit_template_dict, expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
assert not cn_mock.called
|
||||
|
||||
def test_create_audit_template_with_uuid(self):
|
||||
@ -689,7 +691,7 @@ class TestPost(FunctionalTestWithSetup):
|
||||
response = self.post_json('/audit_templates', audit_template_dict,
|
||||
expect_errors=True)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
assert not cn_mock.called
|
||||
|
||||
def test_create_audit_template_with_old_scope(self):
|
||||
@ -710,7 +712,7 @@ class TestPost(FunctionalTestWithSetup):
|
||||
strategy=self.fake_strategy1.uuid, scope=scope)
|
||||
response = self.post_json('/audit_templates',
|
||||
audit_template_dict)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
|
||||
|
||||
class TestDelete(api_base.FunctionalTest):
|
||||
@ -730,7 +732,7 @@ class TestDelete(api_base.FunctionalTest):
|
||||
response = self.get_json(
|
||||
urlparse.quote('/audit_templates/%s' % self.audit_template.uuid),
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -753,7 +755,7 @@ class TestDelete(api_base.FunctionalTest):
|
||||
response = self.get_json(
|
||||
urlparse.quote('/audit_templates/%s' % self.audit_template.name),
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -771,7 +773,7 @@ class TestDelete(api_base.FunctionalTest):
|
||||
uuid = utils.generate_uuid()
|
||||
response = self.delete(
|
||||
'/audit_templates/%s' % uuid, expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -784,7 +786,7 @@ class TestAuditTemplatePolicyEnforcement(api_base.FunctionalTest):
|
||||
"default": "rule:admin_api",
|
||||
rule: "rule:defaut"})
|
||||
response = func(*arg, **kwarg)
|
||||
self.assertEqual(403, response.status_int)
|
||||
self.assertEqual(HTTPStatus.FORBIDDEN, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(
|
||||
"Policy doesn't allow %s to be performed." % rule,
|
||||
|
@ -16,6 +16,7 @@ import itertools
|
||||
from unittest import mock
|
||||
from urllib import parse as urlparse
|
||||
|
||||
from http import HTTPStatus
|
||||
from oslo_config import cfg
|
||||
from oslo_serialization import jsonutils
|
||||
from oslo_utils import timeutils
|
||||
@ -130,7 +131,7 @@ class TestListAudit(api_base.FunctionalTest):
|
||||
|
||||
response = self.get_json('/audits/%s' % audit['uuid'],
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_detail(self):
|
||||
audit = obj_utils.create_test_audit(self.context)
|
||||
@ -153,7 +154,7 @@ class TestListAudit(api_base.FunctionalTest):
|
||||
audit = obj_utils.create_test_audit(self.context)
|
||||
response = self.get_json('/audits/%s/detail' % audit['uuid'],
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_many(self):
|
||||
audit_list = []
|
||||
@ -225,7 +226,7 @@ class TestListAudit(api_base.FunctionalTest):
|
||||
response = self.get_json(
|
||||
'/audits?sort_key=%s' % 'bad_name',
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
|
||||
def test_links(self):
|
||||
uuid = utils.generate_uuid()
|
||||
@ -295,7 +296,7 @@ class TestPatch(api_base.FunctionalTest):
|
||||
[{'path': '/state', 'value': new_state,
|
||||
'op': 'replace'}])
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(200, response.status_code)
|
||||
self.assertEqual(HTTPStatus.OK, response.status_code)
|
||||
|
||||
response = self.get_json('/audits/%s' % self.audit.uuid)
|
||||
self.assertEqual(new_state, response['state'])
|
||||
@ -308,7 +309,7 @@ class TestPatch(api_base.FunctionalTest):
|
||||
'/audits/%s' % utils.generate_uuid(),
|
||||
[{'path': '/state', 'value': objects.audit.State.SUCCEEDED,
|
||||
'op': 'replace'}], expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -318,7 +319,7 @@ class TestPatch(api_base.FunctionalTest):
|
||||
'/audits/%s' % self.audit.uuid,
|
||||
[{'path': '/state', 'value': new_state, 'op': 'add'}])
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(200, response.status_int)
|
||||
self.assertEqual(HTTPStatus.OK, response.status_int)
|
||||
|
||||
response = self.get_json('/audits/%s' % self.audit.uuid)
|
||||
self.assertEqual(new_state, response['state'])
|
||||
@ -329,7 +330,7 @@ class TestPatch(api_base.FunctionalTest):
|
||||
[{'path': '/foo', 'value': 'bar', 'op': 'add'}],
|
||||
expect_errors=True)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
def test_remove_ok(self):
|
||||
@ -339,7 +340,7 @@ class TestPatch(api_base.FunctionalTest):
|
||||
response = self.patch_json('/audits/%s' % self.audit.uuid,
|
||||
[{'path': '/interval', 'op': 'remove'}])
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(200, response.status_code)
|
||||
self.assertEqual(HTTPStatus.OK, response.status_code)
|
||||
|
||||
response = self.get_json('/audits/%s' % self.audit.uuid)
|
||||
self.assertIsNone(response['interval'])
|
||||
@ -348,7 +349,7 @@ class TestPatch(api_base.FunctionalTest):
|
||||
response = self.patch_json('/audits/%s' % self.audit.uuid,
|
||||
[{'path': '/uuid', 'op': 'remove'}],
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -357,7 +358,7 @@ class TestPatch(api_base.FunctionalTest):
|
||||
'/audits/%s' % self.audit.uuid,
|
||||
[{'path': '/non-existent', 'op': 'remove'}],
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_code)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_code)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -415,7 +416,7 @@ class TestPatchStateTransitionDenied(api_base.FunctionalTest):
|
||||
'op': 'replace'}],
|
||||
expect_errors=True)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(400, response.status_code)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_code)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
response = self.get_json('/audits/%s' % self.audit.uuid)
|
||||
@ -462,7 +463,7 @@ class TestPatchStateTransitionOk(api_base.FunctionalTest):
|
||||
[{'path': '/state', 'value': self.new_state,
|
||||
'op': 'replace'}])
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(200, response.status_code)
|
||||
self.assertEqual(HTTPStatus.OK, response.status_code)
|
||||
|
||||
response = self.get_json('/audits/%s' % self.audit.uuid)
|
||||
self.assertEqual(self.new_state, response['state'])
|
||||
@ -502,7 +503,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
|
||||
response = self.post_json('/audits', audit_dict)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
# Check location header
|
||||
self.assertIsNotNone(response.location)
|
||||
expected_location = '/v1/audits/%s' % response.json['uuid']
|
||||
@ -527,7 +528,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
audit_dict = post_get_test_audit(state=objects.audit.State.SUCCEEDED)
|
||||
|
||||
response = self.post_json('/audits', audit_dict, expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -542,7 +543,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
'next_run_time', 'hostname'])
|
||||
|
||||
response = self.post_json('/audits', audit_dict, expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -557,7 +558,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
|
||||
response = self.post_json('/audits', audit_dict)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
self.assertEqual(objects.audit.State.PENDING,
|
||||
response.json['state'])
|
||||
self.assertTrue(utils.is_uuid_like(response.json['uuid']))
|
||||
@ -573,7 +574,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
|
||||
response = self.post_json('/audits', audit_dict)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
self.assertEqual(objects.audit.State.PENDING,
|
||||
response.json['state'])
|
||||
self.assertTrue(utils.is_uuid_like(response.json['uuid']))
|
||||
@ -590,7 +591,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
|
||||
response = self.post_json('/audits', audit_dict)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
self.assertEqual(objects.audit.State.PENDING,
|
||||
response.json['state'])
|
||||
self.assertTrue(utils.is_uuid_like(response.json['uuid']))
|
||||
@ -608,7 +609,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
'01234567-8910-1112-1314-151617181920')
|
||||
|
||||
response = self.post_json('/audits', audit_dict, expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertEqual("application/json", response.content_type)
|
||||
expected_error_msg = ('The audit template UUID or name specified is '
|
||||
'invalid')
|
||||
@ -643,7 +644,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
|
||||
response = self.post_json('/audits', audit_dict)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
self.assertEqual(objects.audit.State.PENDING,
|
||||
response.json['state'])
|
||||
self.assertTrue(utils.is_uuid_like(response.json['uuid']))
|
||||
@ -660,7 +661,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
|
||||
response = self.post_json('/audits', audit_dict)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
self.assertEqual(objects.audit.State.PENDING,
|
||||
response.json['state'])
|
||||
self.assertEqual(audit_dict['interval'], response.json['interval'])
|
||||
@ -679,7 +680,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
|
||||
response = self.post_json('/audits', audit_dict)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
self.assertEqual(objects.audit.State.PENDING,
|
||||
response.json['state'])
|
||||
self.assertEqual(audit_dict['interval'], response.json['interval'])
|
||||
@ -698,7 +699,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
|
||||
response = self.post_json('/audits', audit_dict, expect_errors=True)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(500, response.status_int)
|
||||
self.assertEqual(HTTPStatus.INTERNAL_SERVER_ERROR, response.status_int)
|
||||
expected_error_msg = ('Exactly 5 or 6 columns has to be '
|
||||
'specified for iterator expression.')
|
||||
self.assertTrue(response.json['error_message'])
|
||||
@ -714,7 +715,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
audit_dict['audit_type'] = objects.audit.AuditType.CONTINUOUS.value
|
||||
|
||||
response = self.post_json('/audits', audit_dict, expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
expected_error_msg = ('Interval of audit must be specified '
|
||||
'for CONTINUOUS.')
|
||||
@ -731,7 +732,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
audit_dict['audit_type'] = objects.audit.AuditType.ONESHOT.value
|
||||
|
||||
response = self.post_json('/audits', audit_dict, expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
expected_error_msg = 'Interval of audit must not be set for ONESHOT.'
|
||||
self.assertTrue(response.json['error_message'])
|
||||
@ -755,7 +756,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
del audit_dict['scope']
|
||||
response = self.post_json('/audits', audit_dict, expect_errors=True)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
assert not mock_trigger_audit.called
|
||||
|
||||
@mock.patch.object(deapi.DecisionEngineAPI, 'trigger_audit')
|
||||
@ -769,7 +770,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
|
||||
response = self.post_json('/audits', audit_dict, expect_errors=True)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
expected_error_msg = ('Specify parameters but no predefined '
|
||||
'strategy for audit, or no '
|
||||
'parameter spec in predefined strategy')
|
||||
@ -792,7 +793,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
|
||||
response = self.post_json('/audits', audit_dict, expect_errors=True)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
expected_error_msg = ('Specify parameters but no predefined '
|
||||
'strategy for audit, or no '
|
||||
'parameter spec in predefined strategy')
|
||||
@ -816,7 +817,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
del audit_dict[k]
|
||||
|
||||
response = self.post_json('/audits', audit_dict, expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertEqual("application/json", response.content_type)
|
||||
expected_error_msg = 'Audit parameter fake2 are not allowed'
|
||||
self.assertTrue(response.json['error_message'])
|
||||
@ -875,13 +876,13 @@ class TestPost(api_base.FunctionalTest):
|
||||
audit_dict['name'] = normal_name
|
||||
response = self.post_json('/audits', audit_dict)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
self.assertEqual(normal_name, response.json['name'])
|
||||
|
||||
audit_dict['name'] = long_name
|
||||
response = self.post_json('/audits', audit_dict)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
self.assertNotEqual(long_name, response.json['name'])
|
||||
|
||||
@mock.patch.object(deapi.DecisionEngineAPI, 'trigger_audit')
|
||||
@ -905,7 +906,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
audit_dict,
|
||||
headers={'OpenStack-API-Version': 'infra-optim 1.1'})
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
self.assertEqual(objects.audit.State.PENDING,
|
||||
response.json['state'])
|
||||
self.assertEqual(audit_dict['interval'], response.json['interval'])
|
||||
@ -944,7 +945,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
headers={'OpenStack-API-Version': 'infra-optim 1.0'},
|
||||
expect_errors=True)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(406, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_ACCEPTABLE, response.status_int)
|
||||
expected_error_msg = 'Request not acceptable.'
|
||||
self.assertTrue(response.json['error_message'])
|
||||
self.assertIn(expected_error_msg, response.json['error_message'])
|
||||
@ -963,7 +964,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
audit_dict,
|
||||
headers={'OpenStack-API-Version': 'infra-optim 1.2'})
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
self.assertFalse(response.json['force'])
|
||||
|
||||
@mock.patch.object(deapi.DecisionEngineAPI, 'trigger_audit')
|
||||
@ -980,7 +981,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
audit_dict,
|
||||
headers={'OpenStack-API-Version': 'infra-optim 1.2'})
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(201, response.status_int)
|
||||
self.assertEqual(HTTPStatus.CREATED, response.status_int)
|
||||
self.assertTrue(response.json['force'])
|
||||
|
||||
|
||||
@ -1013,7 +1014,7 @@ class TestDelete(api_base.FunctionalTest):
|
||||
'op': 'replace'}])
|
||||
response = self.delete('/audits/%s' % self.audit.uuid,
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -1025,7 +1026,7 @@ class TestDelete(api_base.FunctionalTest):
|
||||
self.delete('/audits/%s' % self.audit.uuid)
|
||||
response = self.get_json('/audits/%s' % self.audit.uuid,
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -1041,7 +1042,7 @@ class TestDelete(api_base.FunctionalTest):
|
||||
def test_delete_audit_not_found(self):
|
||||
uuid = utils.generate_uuid()
|
||||
response = self.delete('/audits/%s' % uuid, expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -1058,7 +1059,7 @@ class TestAuditPolicyEnforcement(api_base.FunctionalTest):
|
||||
"default": "rule:admin_api",
|
||||
rule: "rule:defaut"})
|
||||
response = func(*arg, **kwarg)
|
||||
self.assertEqual(403, response.status_int)
|
||||
self.assertEqual(HTTPStatus.FORBIDDEN, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(
|
||||
"Policy doesn't allow %s to be performed." % rule,
|
||||
|
@ -15,6 +15,7 @@
|
||||
|
||||
from unittest import mock
|
||||
|
||||
from http import HTTPStatus
|
||||
from oslo_serialization import jsonutils
|
||||
|
||||
from watcher.decision_engine import rpcapi as deapi
|
||||
@ -42,7 +43,7 @@ class TestListDataModel(api_base.FunctionalTest):
|
||||
'/data_model/?data_model_type=compute',
|
||||
headers={'OpenStack-API-Version': 'infra-optim 1.2'},
|
||||
expect_errors=True)
|
||||
self.assertEqual(406, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_ACCEPTABLE, response.status_int)
|
||||
|
||||
|
||||
class TestDataModelPolicyEnforcement(api_base.FunctionalTest):
|
||||
@ -59,7 +60,7 @@ class TestDataModelPolicyEnforcement(api_base.FunctionalTest):
|
||||
"default": "rule:admin_api",
|
||||
rule: "rule:defaut"})
|
||||
response = func(*arg, **kwarg)
|
||||
self.assertEqual(403, response.status_int)
|
||||
self.assertEqual(HTTPStatus.FORBIDDEN, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(
|
||||
"Policy doesn't allow %s to be performed." % rule,
|
||||
|
@ -10,6 +10,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from http import HTTPStatus
|
||||
from oslo_config import cfg
|
||||
from oslo_serialization import jsonutils
|
||||
from urllib import parse as urlparse
|
||||
@ -59,7 +60,7 @@ class TestListGoal(api_base.FunctionalTest):
|
||||
response = self.get_json(
|
||||
'/goals/%s' % goal['uuid'],
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_detail(self):
|
||||
goal = obj_utils.create_test_goal(self.context)
|
||||
@ -71,7 +72,7 @@ class TestListGoal(api_base.FunctionalTest):
|
||||
goal = obj_utils.create_test_goal(self.context)
|
||||
response = self.get_json('/goals/%s/detail' % goal.uuid,
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_many(self):
|
||||
goal_list = []
|
||||
@ -139,7 +140,7 @@ class TestListGoal(api_base.FunctionalTest):
|
||||
response = self.get_json(
|
||||
'/goals?sort_key=%s' % 'bad_name',
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
|
||||
|
||||
class TestGoalPolicyEnforcement(api_base.FunctionalTest):
|
||||
@ -150,7 +151,7 @@ class TestGoalPolicyEnforcement(api_base.FunctionalTest):
|
||||
"default": "rule:admin_api",
|
||||
rule: "rule:default"})
|
||||
response = func(*arg, **kwarg)
|
||||
self.assertEqual(403, response.status_int)
|
||||
self.assertEqual(HTTPStatus.FORBIDDEN, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(
|
||||
"Policy doesn't allow %s to be performed." % rule,
|
||||
|
@ -10,6 +10,8 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from http import HTTPStatus
|
||||
|
||||
from watcher.api.controllers.v1 import versions
|
||||
from watcher.tests.api import base as api_base
|
||||
|
||||
@ -38,7 +40,7 @@ class TestMicroversions(api_base.FunctionalTest):
|
||||
'10'])},
|
||||
expect_errors=True, return_json=False)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertEqual(406, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_ACCEPTABLE, response.status_int)
|
||||
expected_error_msg = ('Invalid value for'
|
||||
' OpenStack-API-Version header')
|
||||
self.assertTrue(response.json['error_message'])
|
||||
@ -98,7 +100,7 @@ class TestMicroversions(api_base.FunctionalTest):
|
||||
headers={'OpenStack-API-Version': ' '.join([SERVICE_TYPE,
|
||||
'1.999'])},
|
||||
expect_errors=True)
|
||||
self.assertEqual(406, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_ACCEPTABLE, response.status_int)
|
||||
self.assertEqual(response.headers[H_MIN_VER], MIN_VER)
|
||||
self.assertEqual(response.headers[H_MAX_VER], MAX_VER)
|
||||
expected_error_msg = ('Version 1.999 was requested but the minor '
|
||||
|
@ -10,6 +10,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from http import HTTPStatus
|
||||
from oslo_config import cfg
|
||||
from oslo_serialization import jsonutils
|
||||
from watcher.common import utils
|
||||
@ -44,7 +45,7 @@ class TestListScoringEngine(api_base.FunctionalTest):
|
||||
response = self.get_json(
|
||||
'/scoring_engines/%s' % scoring_engine['name'],
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_detail(self):
|
||||
obj_utils.create_test_goal(self.context)
|
||||
@ -63,7 +64,7 @@ class TestListScoringEngine(api_base.FunctionalTest):
|
||||
response = self.get_json(
|
||||
'/scoring_engines/%s/detail' % scoring_engine.id,
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_many(self):
|
||||
scoring_engine_list = []
|
||||
@ -131,7 +132,7 @@ class TestListScoringEngine(api_base.FunctionalTest):
|
||||
response = self.get_json(
|
||||
'/goals?sort_key=%s' % 'bad_name',
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
|
||||
|
||||
class TestScoringEnginePolicyEnforcement(api_base.FunctionalTest):
|
||||
@ -142,7 +143,7 @@ class TestScoringEnginePolicyEnforcement(api_base.FunctionalTest):
|
||||
"default": "rule:admin_api",
|
||||
rule: "rule:default"})
|
||||
response = func(*arg, **kwarg)
|
||||
self.assertEqual(403, response.status_int)
|
||||
self.assertEqual(HTTPStatus.FORBIDDEN, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(
|
||||
"Policy doesn't allow %s to be performed." % rule,
|
||||
|
@ -10,6 +10,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from http import HTTPStatus
|
||||
from oslo_config import cfg
|
||||
from oslo_serialization import jsonutils
|
||||
from urllib import parse as urlparse
|
||||
@ -57,7 +58,7 @@ class TestListService(api_base.FunctionalTest):
|
||||
response = self.get_json(
|
||||
'/services/%s' % service['id'],
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_detail(self):
|
||||
service = obj_utils.create_test_service(self.context)
|
||||
@ -74,7 +75,7 @@ class TestListService(api_base.FunctionalTest):
|
||||
service = obj_utils.create_test_service(self.context)
|
||||
response = self.get_json('/services/%s/detail' % service.id,
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_many(self):
|
||||
service_list = []
|
||||
@ -149,7 +150,7 @@ class TestListService(api_base.FunctionalTest):
|
||||
response = self.get_json(
|
||||
'/services?sort_key=%s' % 'bad_name',
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
|
||||
|
||||
class TestServicePolicyEnforcement(api_base.FunctionalTest):
|
||||
@ -160,7 +161,7 @@ class TestServicePolicyEnforcement(api_base.FunctionalTest):
|
||||
"default": "rule:admin_api",
|
||||
rule: "rule:default"})
|
||||
response = func(*arg, **kwarg)
|
||||
self.assertEqual(403, response.status_int)
|
||||
self.assertEqual(HTTPStatus.FORBIDDEN, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(
|
||||
"Policy doesn't allow %s to be performed." % rule,
|
||||
|
@ -13,6 +13,7 @@
|
||||
from unittest import mock
|
||||
from urllib import parse as urlparse
|
||||
|
||||
from http import HTTPStatus
|
||||
from oslo_config import cfg
|
||||
from oslo_serialization import jsonutils
|
||||
|
||||
@ -88,7 +89,7 @@ class TestListStrategy(api_base.FunctionalTest):
|
||||
response = self.get_json(
|
||||
'/strategies/%s' % strategy['uuid'],
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_detail(self):
|
||||
strategy = obj_utils.create_test_strategy(self.context)
|
||||
@ -104,7 +105,7 @@ class TestListStrategy(api_base.FunctionalTest):
|
||||
strategy = obj_utils.create_test_strategy(self.context)
|
||||
response = self.get_json('/strategies/%s/detail' % strategy.uuid,
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
|
||||
def test_many(self):
|
||||
strategy_list = []
|
||||
@ -240,7 +241,7 @@ class TestListStrategy(api_base.FunctionalTest):
|
||||
response = self.get_json(
|
||||
'/strategies?sort_key=%s' % 'bad_name',
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
|
||||
|
||||
class TestStrategyPolicyEnforcement(api_base.FunctionalTest):
|
||||
@ -256,7 +257,7 @@ class TestStrategyPolicyEnforcement(api_base.FunctionalTest):
|
||||
"default": "rule:admin_api",
|
||||
rule: "rule:defaut"})
|
||||
response = func(*arg, **kwarg)
|
||||
self.assertEqual(403, response.status_int)
|
||||
self.assertEqual(HTTPStatus.FORBIDDEN, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(
|
||||
"Policy doesn't allow %s to be performed." % rule,
|
||||
|
@ -18,6 +18,8 @@ import webtest
|
||||
import wsme
|
||||
from wsme import types as wtypes
|
||||
|
||||
from http import HTTPStatus
|
||||
|
||||
from watcher.api.controllers.v1 import types
|
||||
from watcher.common import exception
|
||||
from watcher.common import utils
|
||||
@ -120,68 +122,68 @@ class TestJsonPatchType(base.TestCase):
|
||||
{'path': '/dict', 'op': 'add',
|
||||
'value': {'cat': 'meow'}}]
|
||||
ret = self._patch_json(valid_patches, False)
|
||||
self.assertEqual(200, ret.status_int)
|
||||
self.assertEqual(HTTPStatus.OK, ret.status_int)
|
||||
self.assertEqual(valid_patches, ret.json)
|
||||
|
||||
def test_cannot_update_internal_attr(self):
|
||||
patch = [{'path': '/internal', 'op': 'replace', 'value': 'foo'}]
|
||||
ret = self._patch_json(patch, True)
|
||||
self.assertEqual(400, ret.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, ret.status_int)
|
||||
self.assertTrue(ret.json['faultstring'])
|
||||
|
||||
def test_cannot_update_internal_dict_attr(self):
|
||||
patch = [{'path': '/internal', 'op': 'replace',
|
||||
'value': 'foo'}]
|
||||
ret = self._patch_json(patch, True)
|
||||
self.assertEqual(400, ret.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, ret.status_int)
|
||||
self.assertTrue(ret.json['faultstring'])
|
||||
|
||||
def test_mandatory_attr(self):
|
||||
patch = [{'op': 'replace', 'path': '/mandatory', 'value': 'foo'}]
|
||||
ret = self._patch_json(patch, False)
|
||||
self.assertEqual(200, ret.status_int)
|
||||
self.assertEqual(HTTPStatus.OK, ret.status_int)
|
||||
self.assertEqual(patch, ret.json)
|
||||
|
||||
def test_cannot_remove_mandatory_attr(self):
|
||||
patch = [{'op': 'remove', 'path': '/mandatory'}]
|
||||
ret = self._patch_json(patch, True)
|
||||
self.assertEqual(400, ret.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, ret.status_int)
|
||||
self.assertTrue(ret.json['faultstring'])
|
||||
|
||||
def test_missing_required_fields_path(self):
|
||||
missing_path = [{'op': 'remove'}]
|
||||
ret = self._patch_json(missing_path, True)
|
||||
self.assertEqual(400, ret.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, ret.status_int)
|
||||
self.assertTrue(ret.json['faultstring'])
|
||||
|
||||
def test_missing_required_fields_op(self):
|
||||
missing_op = [{'path': '/foo'}]
|
||||
ret = self._patch_json(missing_op, True)
|
||||
self.assertEqual(400, ret.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, ret.status_int)
|
||||
self.assertTrue(ret.json['faultstring'])
|
||||
|
||||
def test_invalid_op(self):
|
||||
patch = [{'path': '/foo', 'op': 'invalid'}]
|
||||
ret = self._patch_json(patch, True)
|
||||
self.assertEqual(400, ret.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, ret.status_int)
|
||||
self.assertTrue(ret.json['faultstring'])
|
||||
|
||||
def test_invalid_path(self):
|
||||
patch = [{'path': 'invalid-path', 'op': 'remove'}]
|
||||
ret = self._patch_json(patch, True)
|
||||
self.assertEqual(400, ret.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, ret.status_int)
|
||||
self.assertTrue(ret.json['faultstring'])
|
||||
|
||||
def test_cannot_add_with_no_value(self):
|
||||
patch = [{'path': '/extra/foo', 'op': 'add'}]
|
||||
ret = self._patch_json(patch, True)
|
||||
self.assertEqual(400, ret.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, ret.status_int)
|
||||
self.assertTrue(ret.json['faultstring'])
|
||||
|
||||
def test_cannot_replace_with_no_value(self):
|
||||
patch = [{'path': '/foo', 'op': 'replace'}]
|
||||
ret = self._patch_json(patch, True)
|
||||
self.assertEqual(400, ret.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, ret.status_int)
|
||||
self.assertTrue(ret.json['faultstring'])
|
||||
|
||||
|
||||
|
@ -12,6 +12,8 @@
|
||||
|
||||
from unittest import mock
|
||||
|
||||
from http import HTTPStatus
|
||||
|
||||
from watcher.decision_engine import rpcapi as deapi
|
||||
from watcher import objects
|
||||
from watcher.tests.api import base as api_base
|
||||
@ -34,7 +36,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
response = self.post_json(
|
||||
'/webhooks/%s' % audit['uuid'], {},
|
||||
headers={'OpenStack-API-Version': 'infra-optim 1.4'})
|
||||
self.assertEqual(202, response.status_int)
|
||||
self.assertEqual(HTTPStatus.ACCEPTED, response.status_int)
|
||||
mock_trigger_audit.assert_called_once_with(
|
||||
mock.ANY, audit['uuid'])
|
||||
|
||||
@ -43,7 +45,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
'/webhooks/no-audit', {},
|
||||
headers={'OpenStack-API-Version': 'infra-optim 1.4'},
|
||||
expect_errors=True)
|
||||
self.assertEqual(404, response.status_int)
|
||||
self.assertEqual(HTTPStatus.NOT_FOUND, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -53,7 +55,7 @@ class TestPost(api_base.FunctionalTest):
|
||||
'/webhooks/%s' % audit['uuid'], {},
|
||||
headers={'OpenStack-API-Version': 'infra-optim 1.4'},
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
||||
@ -66,6 +68,6 @@ class TestPost(api_base.FunctionalTest):
|
||||
'/webhooks/%s' % audit['uuid'], {},
|
||||
headers={'OpenStack-API-Version': 'infra-optim 1.4'},
|
||||
expect_errors=True)
|
||||
self.assertEqual(400, response.status_int)
|
||||
self.assertEqual(HTTPStatus.BAD_REQUEST, response.status_int)
|
||||
self.assertEqual('application/json', response.content_type)
|
||||
self.assertTrue(response.json['error_message'])
|
||||
|
@ -13,9 +13,11 @@
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
import time
|
||||
from unittest import mock
|
||||
|
||||
from http import HTTPStatus
|
||||
import time
|
||||
|
||||
from cinderclient import exceptions as cinder_exception
|
||||
|
||||
from watcher.common import cinder_helper
|
||||
@ -291,7 +293,8 @@ class TestCinderHelper(base.TestCase):
|
||||
|
||||
volume = self.fake_volume()
|
||||
cinder_util.get_volume = mock.MagicMock()
|
||||
cinder_util.get_volume.side_effect = cinder_exception.NotFound(404)
|
||||
cinder_util.get_volume.side_effect =\
|
||||
cinder_exception.NotFound(HTTPStatus.NOT_FOUND)
|
||||
result = cinder_util._can_get_volume(volume.id)
|
||||
self.assertFalse(result)
|
||||
|
||||
@ -339,7 +342,7 @@ class TestCinderHelper(base.TestCase):
|
||||
cinder_util = cinder_helper.CinderHelper()
|
||||
|
||||
volume = self.fake_volume()
|
||||
side_effect = cinder_exception.NotFound(404)
|
||||
side_effect = cinder_exception.NotFound(HTTPStatus.NOT_FOUND)
|
||||
cinder_util.cinder.volumes.get.side_effect = side_effect
|
||||
cinder_util.cinder.volumes.find.return_value = False
|
||||
result = cinder_util.get_volume(volume)
|
||||
|
@ -11,6 +11,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from http import HTTPStatus
|
||||
from unittest import mock
|
||||
|
||||
from watcher.common import placement_helper
|
||||
@ -55,10 +56,10 @@ class TestPlacementHelper(base.TestCase):
|
||||
kss_req.assert_called_once_with(url, method, **kwargs)
|
||||
|
||||
def test_get(self, kss_req):
|
||||
kss_req.return_value = fake_requests.FakeResponse(200)
|
||||
kss_req.return_value = fake_requests.FakeResponse(HTTPStatus.OK)
|
||||
url = '/resource_providers'
|
||||
resp = self.client.get(url)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
self.assertEqual(HTTPStatus.OK, resp.status_code)
|
||||
self._assert_keystone_called_once(kss_req, url, 'GET')
|
||||
|
||||
def test_get_resource_providers_OK(self, kss_req):
|
||||
@ -76,7 +77,7 @@ class TestPlacementHelper(base.TestCase):
|
||||
}
|
||||
|
||||
kss_req.return_value = fake_requests.FakeResponse(
|
||||
200, content=jsonutils.dump_as_bytes(mock_json_data))
|
||||
HTTPStatus.OK, content=jsonutils.dump_as_bytes(mock_json_data))
|
||||
|
||||
result = self.client.get_resource_providers(rp_name)
|
||||
|
||||
@ -99,7 +100,7 @@ class TestPlacementHelper(base.TestCase):
|
||||
}
|
||||
|
||||
kss_req.return_value = fake_requests.FakeResponse(
|
||||
200, content=jsonutils.dump_as_bytes(mock_json_data))
|
||||
HTTPStatus.OK, content=jsonutils.dump_as_bytes(mock_json_data))
|
||||
|
||||
result = self.client.get_resource_providers(rp_name)
|
||||
|
||||
@ -110,7 +111,8 @@ class TestPlacementHelper(base.TestCase):
|
||||
def test_get_resource_providers_fail(self, kss_req):
|
||||
rp_name = 'compute'
|
||||
kss_req.return_value = fake_requests.FakeResponse(
|
||||
400, content=jsonutils.dump_as_bytes(self.fake_err_msg))
|
||||
HTTPStatus.BAD_REQUEST,
|
||||
content=jsonutils.dump_as_bytes(self.fake_err_msg))
|
||||
result = self.client.get_resource_providers(rp_name)
|
||||
self.assertIsNone(result)
|
||||
|
||||
@ -149,7 +151,7 @@ class TestPlacementHelper(base.TestCase):
|
||||
}
|
||||
|
||||
kss_req.return_value = fake_requests.FakeResponse(
|
||||
200, content=jsonutils.dump_as_bytes(mock_json_data))
|
||||
HTTPStatus.OK, content=jsonutils.dump_as_bytes(mock_json_data))
|
||||
|
||||
result = self.client.get_inventories(rp_uuid)
|
||||
|
||||
@ -160,7 +162,8 @@ class TestPlacementHelper(base.TestCase):
|
||||
def test_get_inventories_fail(self, kss_req):
|
||||
rp_uuid = uuidutils.generate_uuid()
|
||||
kss_req.return_value = fake_requests.FakeResponse(
|
||||
404, content=jsonutils.dump_as_bytes(self.fake_err_msg))
|
||||
HTTPStatus.NOT_FOUND,
|
||||
content=jsonutils.dump_as_bytes(self.fake_err_msg))
|
||||
result = self.client.get_inventories(rp_uuid)
|
||||
self.assertIsNone(result)
|
||||
|
||||
@ -175,7 +178,7 @@ class TestPlacementHelper(base.TestCase):
|
||||
}
|
||||
|
||||
kss_req.return_value = fake_requests.FakeResponse(
|
||||
200, content=jsonutils.dump_as_bytes(mock_json_data))
|
||||
HTTPStatus.OK, content=jsonutils.dump_as_bytes(mock_json_data))
|
||||
|
||||
result = self.client.get_provider_traits(rp_uuid)
|
||||
|
||||
@ -186,7 +189,8 @@ class TestPlacementHelper(base.TestCase):
|
||||
def test_get_provider_traits_fail(self, kss_req):
|
||||
rp_uuid = uuidutils.generate_uuid()
|
||||
kss_req.return_value = fake_requests.FakeResponse(
|
||||
404, content=jsonutils.dump_as_bytes(self.fake_err_msg))
|
||||
HTTPStatus.NOT_FOUND,
|
||||
content=jsonutils.dump_as_bytes(self.fake_err_msg))
|
||||
result = self.client.get_provider_traits(rp_uuid)
|
||||
self.assertIsNone(result)
|
||||
|
||||
@ -216,7 +220,7 @@ class TestPlacementHelper(base.TestCase):
|
||||
}
|
||||
|
||||
kss_req.return_value = fake_requests.FakeResponse(
|
||||
200, content=jsonutils.dump_as_bytes(mock_json_data))
|
||||
HTTPStatus.OK, content=jsonutils.dump_as_bytes(mock_json_data))
|
||||
|
||||
result = self.client.get_allocations_for_consumer(c_uuid)
|
||||
|
||||
@ -227,7 +231,8 @@ class TestPlacementHelper(base.TestCase):
|
||||
def test_get_allocations_for_consumer_fail(self, kss_req):
|
||||
c_uuid = uuidutils.generate_uuid()
|
||||
kss_req.return_value = fake_requests.FakeResponse(
|
||||
404, content=jsonutils.dump_as_bytes(self.fake_err_msg))
|
||||
HTTPStatus.NOT_FOUND,
|
||||
content=jsonutils.dump_as_bytes(self.fake_err_msg))
|
||||
result = self.client.get_allocations_for_consumer(c_uuid)
|
||||
self.assertIsNone(result)
|
||||
|
||||
@ -245,7 +250,7 @@ class TestPlacementHelper(base.TestCase):
|
||||
}
|
||||
|
||||
kss_req.return_value = fake_requests.FakeResponse(
|
||||
200, content=jsonutils.dump_as_bytes(mock_json_data))
|
||||
HTTPStatus.OK, content=jsonutils.dump_as_bytes(mock_json_data))
|
||||
|
||||
result = self.client.get_usages_for_resource_provider(rp_uuid)
|
||||
|
||||
@ -256,7 +261,8 @@ class TestPlacementHelper(base.TestCase):
|
||||
def test_get_usages_for_resource_provider_fail(self, kss_req):
|
||||
rp_uuid = uuidutils.generate_uuid()
|
||||
kss_req.return_value = fake_requests.FakeResponse(
|
||||
404, content=jsonutils.dump_as_bytes(self.fake_err_msg))
|
||||
HTTPStatus.NOT_FOUND,
|
||||
content=jsonutils.dump_as_bytes(self.fake_err_msg))
|
||||
result = self.client.get_usages_for_resource_provider(rp_uuid)
|
||||
self.assertIsNone(result)
|
||||
|
||||
@ -296,7 +302,7 @@ class TestPlacementHelper(base.TestCase):
|
||||
}
|
||||
|
||||
kss_req.return_value = fake_requests.FakeResponse(
|
||||
200, content=jsonutils.dump_as_bytes(mock_json_data))
|
||||
HTTPStatus.OK, content=jsonutils.dump_as_bytes(mock_json_data))
|
||||
|
||||
result = self.client.get_candidate_providers(resources)
|
||||
|
||||
@ -307,6 +313,7 @@ class TestPlacementHelper(base.TestCase):
|
||||
def test_get_candidate_providers_fail(self, kss_req):
|
||||
rp_uuid = uuidutils.generate_uuid()
|
||||
kss_req.return_value = fake_requests.FakeResponse(
|
||||
404, content=jsonutils.dump_as_bytes(self.fake_err_msg))
|
||||
HTTPStatus.NOT_FOUND,
|
||||
content=jsonutils.dump_as_bytes(self.fake_err_msg))
|
||||
result = self.client.get_candidate_providers(rp_uuid)
|
||||
self.assertIsNone(result)
|
||||
|
@ -26,6 +26,7 @@ from watcher.common import exception
|
||||
from watcher.decision_engine.datasources import grafana
|
||||
from watcher.tests import base
|
||||
|
||||
from http import HTTPStatus
|
||||
import requests
|
||||
|
||||
CONF = cfg.CONF
|
||||
@ -128,7 +129,7 @@ class TestGrafana(base.BaseTestCase):
|
||||
problems.
|
||||
"""
|
||||
|
||||
m_request.return_value = mock.Mock(status_code=404)
|
||||
m_request.return_value = mock.Mock(status_code=HTTPStatus.NOT_FOUND)
|
||||
|
||||
t_grafana = grafana.GrafanaHelper(osc=mock.Mock())
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user