Added functional tests for CLI commands. Added functional tests for client API. Modified ACL client API functional test not to use behavior class as per recent change in secrets, containers, and orders. Change-Id: Ibacf33e834daa2c70ef1b0032495bbe443957cac
90 lines
3.2 KiB
Python
90 lines
3.2 KiB
Python
"""
|
|
Copyright 2015 IBM
|
|
|
|
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.
|
|
"""
|
|
|
|
|
|
class CleanUp(object):
|
|
|
|
def __init__(self, barbicanclient):
|
|
self.created_entities = {
|
|
'secret': [],
|
|
'container': [],
|
|
'acl': [],
|
|
'order': []
|
|
}
|
|
|
|
self.barbicanclient = barbicanclient
|
|
|
|
def delete_all_entities(self):
|
|
"""Helper method to delete all containers and secrets used for
|
|
testing"""
|
|
self._delete_all_acls()
|
|
self._delete_all_containers()
|
|
self._delete_all_orders()
|
|
self._delete_all_secrets()
|
|
|
|
def add_entity(self, entity):
|
|
"""Stores an entity in Barbican to be used for testing
|
|
and keeps track of entity for removal after tests are
|
|
run"""
|
|
entity_type = str(type(entity)).lower()
|
|
if 'acl' in entity_type:
|
|
entity_ref = entity.submit()
|
|
entity_type = 'acl'
|
|
elif 'secret' in entity_type:
|
|
entity_ref = entity.store()
|
|
entity_type = 'secret'
|
|
elif 'container' in entity_type:
|
|
entity_ref = entity.store()
|
|
entity_type = 'container'
|
|
else:
|
|
entity_ref = entity.submit()
|
|
entity_type = 'order'
|
|
|
|
self.created_entities[entity_type].append(entity_ref)
|
|
return entity_ref
|
|
|
|
def _delete_all_containers(self):
|
|
"""Helper method to delete all containers used for
|
|
testing"""
|
|
for container_ref in self.created_entities['container']:
|
|
self.barbicanclient.containers.delete(container_ref)
|
|
|
|
def _delete_all_secrets(self):
|
|
"""Helper method to delete all secrets used for testing"""
|
|
for secret_ref in self.created_entities['secret']:
|
|
self.barbicanclient.secrets.delete(secret_ref)
|
|
|
|
def _delete_all_acls(self):
|
|
"""Helper method to delete all acls used for testing"""
|
|
for acl_ref in self.created_entities['acl']:
|
|
entity_ref = acl_ref.replace("/acl", "")
|
|
blank_acl_entity = self.barbicanclient.acls.create(
|
|
entity_ref=entity_ref)
|
|
blank_acl_entity.remove()
|
|
|
|
def _delete_all_orders(self):
|
|
"""Helper method to delete all orders and secrets used for testing"""
|
|
for order_ref in self.created_entities['order']:
|
|
order = self.barbicanclient.orders.get(order_ref)
|
|
if order.secret_ref:
|
|
self.barbicanclient.secrets.delete(order.secret_ref)
|
|
# see if containers are supported
|
|
container_attr_exists = getattr(order, "container_ref", None)
|
|
if container_attr_exists and order.container_ref:
|
|
self.barbicanclient.containers.delete(order.container_ref)
|
|
|
|
self.barbicanclient.orders.delete(order_ref)
|