486a4e2a2b
These tests will attempt CRUD operations on Secret and Container ACLs without valid tokens. They should all return HTTP 401s. Also added PATCH support to the common client, and use_auth parameters to ACL behaviors. Change-Id: Ie753b6605ae81202a4bb473dd6f9101919f4eda5
108 lines
4.1 KiB
Python
108 lines
4.1 KiB
Python
"""
|
|
Copyright 2015 Cisco Systems
|
|
|
|
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 functionaltests.api.v1.behaviors import base_behaviors
|
|
from functionaltests.api.v1.models import acl_models
|
|
|
|
|
|
class AclBehaviors(base_behaviors.BaseBehaviors):
|
|
|
|
def create_acl(self, entity_ref, model, extra_headers=None,
|
|
use_auth=True, user_name=None):
|
|
"""Create an acl from the data in the model.
|
|
|
|
:param entity_ref: ref of secret or container for acl
|
|
:param model: The metadata used to create the acl
|
|
:param extra_headers: Headers used to create the acl
|
|
:param use_auth: Boolean for whether to send authentication headers
|
|
:param user_name: The user name used to create the acl
|
|
|
|
:return: the response from the PUT request
|
|
"""
|
|
|
|
acl_ref = '{0}/acl'.format(entity_ref)
|
|
resp = self.client.put(acl_ref, request_model=model,
|
|
extra_headers=extra_headers, use_auth=use_auth,
|
|
user_name=user_name)
|
|
|
|
self.created_entities.append((acl_ref, user_name))
|
|
return resp
|
|
|
|
def get_acl(self, acl_ref, extra_headers=None, use_auth=True,
|
|
user_name=None):
|
|
"""Handles getting a single acl
|
|
|
|
:param acl_ref: Reference to the acl to be retrieved
|
|
:param extra_headers: Headers used to get the acl
|
|
:param use_auth: Boolean for whether to send authentication headers
|
|
:param user_name: The user name used to get the acl
|
|
|
|
:return: The response of the GET.
|
|
"""
|
|
resp = self.client.get(
|
|
acl_ref, response_model_type=acl_models.AclModel,
|
|
use_auth=use_auth, user_name=user_name)
|
|
return resp
|
|
|
|
def update_acl(self, acl_ref, model, extra_headers=None,
|
|
use_auth=True, user_name=None):
|
|
"""Update an acl from the data in the model.
|
|
|
|
:param acl_ref: Reference of the acl to be updated
|
|
:param model: The metadata used to update the acl
|
|
:param extra_headers: Headers used to update the acl
|
|
:param use_auth: Boolean for whether to send authentication headers
|
|
:param user_name: The user name used to update the acl
|
|
|
|
:return: the response from the PATCH request
|
|
"""
|
|
resp = self.client.patch(
|
|
acl_ref, request_model=model, extra_headers=extra_headers,
|
|
response_model_type=acl_models.AclModel,
|
|
use_auth=use_auth, user_name=user_name)
|
|
|
|
return resp
|
|
|
|
def delete_acl(self, acl_ref, extra_headers=None,
|
|
expected_fail=False, use_auth=True, user_name=None):
|
|
"""Handles deleting an acl.
|
|
|
|
:param acl_ref: Reference of the acl to be deleted
|
|
:param extra_headers: Any additional headers needed.
|
|
:param expected_fail: If there is a negative test, this should be
|
|
marked true if you are trying to delete an acl that does
|
|
not exist.
|
|
:param use_auth: Boolean for whether to send authentication headers
|
|
:param user_name: The user name used to delete the acl
|
|
|
|
:return: Response of the delete.
|
|
"""
|
|
resp = self.client.delete(acl_ref, extra_headers, use_auth=use_auth,
|
|
user_name=user_name)
|
|
|
|
if not expected_fail:
|
|
for item in self.created_entities:
|
|
if item[0] == acl_ref:
|
|
self.created_entities.remove(item)
|
|
|
|
return resp
|
|
|
|
def delete_all_created_acls(self):
|
|
"""Delete all of the acls that we have created."""
|
|
entities = list(self.created_entities)
|
|
for (acl_ref, user_name) in entities:
|
|
self.delete_acl(acl_ref, user_name=user_name)
|