# Path: functionaltests/client/base.py
# CONF = config.get_config()
# class TestCase(BaseTestCase):
#     def setUp(self):
# 
# Path: functionaltests/common/cleanup.py
# class CleanUp(object):
#     def __init__(self, barbicanclient):
#     def delete_all_entities(self):
#     def add_entity(self, entity):
#     def _delete_all_containers(self):
#     def _delete_all_secrets(self):
#     def _delete_all_acls(self):
#     def _delete_all_orders(self):
# 
# Path: functionaltests/utils.py
# class BaseTestCase(oslotest.BaseTestCase):
#     def setUp(self):
#     def tearDown(self):
# def construct_new_test_function(original_func, name, build_params):
#     def test_wrapper(func, test_args, test_kwargs):
#         def wrapper(self):
# def process_parameterized_function(name, func_obj, build_data):
# def parameterized_test_case(cls):
# def parameterized_dataset(build_data):
#     def decorator(func):
# def create_timestamp_w_tz_and_offset(timezone=None, days=0, hours=0, minutes=0,
#                                      seconds=0):
# def get_limit_and_offset_from_ref(ref):
# def get_tomorrow_timestamp():
# def string_to_datetime(datetimestring, date_formats=None):
# def get_id_from_ref(ref):
# 
# Path: barbicanclient/exceptions.py
# class BarbicanException(Exception):
# class PayloadException(BarbicanException):
# class UnsupportedVersion(BarbicanException):
# class HTTPError(Exception):
# class HTTPServerError(HTTPError):
# class HTTPClientError(HTTPError):
# class HTTPAuthError(HTTPError):
#     def __init__(self, message, status_code=0):
#     def __init__(self, message, status_code=401):


from testtools import testcase
from functionaltests.client import base
from functionaltests.common import cleanup
from functionaltests import utils
from oslo_utils import uuidutils
from barbicanclient import exceptions
                                   **kwargs):
        """Submit operation on ACL entity which stores ACL setting in Barbican.

        """
        entity_ref, _ = getattr(self, entity_ref_method)()

        acl_data = {'entity_ref': entity_ref, 'users': users,
                    'project_access': project_access}
        entity = self.barbicanclient.acls.create(**acl_data)

        acl_ref = self.cleanup.add_entity(entity)
        self.assertIsNotNone(acl_ref)
        self.assertEqual(entity_ref + "/acl", acl_ref)

        acl_entity = self.barbicanclient.acls.get(entity.entity_ref)
        self.assertIsNotNone(acl_entity)

        # read acl as dictionary lookup
        acl = acl_entity.get('read')
        self.assertEqual(set(expect_users), set(acl.users))
        self.assertEqual(expect_project_access, acl.project_access)
        self.assertIsNotNone(acl.created)
        self.assertIsNotNone(acl.updated)
        self.assertEqual(acl_type, acl_entity._acl_type)

        # read acl as property lookup
        acl = acl_entity.read
        self.assertEqual(set(expect_users), set(acl.users))
        self.assertEqual(expect_project_access, acl.project_access)


# Path: functionaltests/client/base.py
# CONF = config.get_config()
# class TestCase(BaseTestCase):
#     def setUp(self):
# 
# Path: functionaltests/common/cleanup.py
# class CleanUp(object):
#     def __init__(self, barbicanclient):
#     def delete_all_entities(self):
#     def add_entity(self, entity):
#     def _delete_all_containers(self):
#     def _delete_all_secrets(self):
#     def _delete_all_acls(self):
#     def _delete_all_orders(self):
# 
# Path: functionaltests/utils.py
# class BaseTestCase(oslotest.BaseTestCase):
#     def setUp(self):
#     def tearDown(self):
# def construct_new_test_function(original_func, name, build_params):
#     def test_wrapper(func, test_args, test_kwargs):
#         def wrapper(self):
# def process_parameterized_function(name, func_obj, build_data):
# def parameterized_test_case(cls):
# def parameterized_dataset(build_data):
#     def decorator(func):
# def create_timestamp_w_tz_and_offset(timezone=None, days=0, hours=0, minutes=0,
#                                      seconds=0):
# def get_limit_and_offset_from_ref(ref):
# def get_tomorrow_timestamp():
# def string_to_datetime(datetimestring, date_formats=None):
# def get_id_from_ref(ref):
# 
# Path: barbicanclient/exceptions.py
# class BarbicanException(Exception):
# class PayloadException(BarbicanException):
# class UnsupportedVersion(BarbicanException):
# class HTTPError(Exception):
# class HTTPServerError(HTTPError):
# class HTTPClientError(HTTPError):
# class HTTPAuthError(HTTPError):
#     def __init__(self, message, status_code=0):
#     def __init__(self, message, status_code=401):


# Path: functionaltests/client/v1/functional/test_acl.py
from testtools import testcase
from functionaltests.client import base
from functionaltests.common import cleanup
from functionaltests import utils
from oslo_utils import uuidutils
from barbicanclient import exceptions

                                   **kwargs):
        """Submit operation on ACL entity which stores ACL setting in Barbican.

        """
        entity_ref, _ = getattr(self, entity_ref_method)()

        acl_data = {'entity_ref': entity_ref, 'users': users,
                    'project_access': project_access}
        entity = self.barbicanclient.acls.create(**acl_data)

        acl_ref = self.cleanup.add_entity(entity)
        self.assertIsNotNone(acl_ref)
        self.assertEqual(entity_ref + "/acl", acl_ref)

        acl_entity = self.barbicanclient.acls.get(entity.entity_ref)
        self.assertIsNotNone(acl_entity)

        # read acl as dictionary lookup
        acl = acl_entity.get('read')
        self.assertEqual(set(expect_users), set(acl.users))
        self.assertEqual(expect_project_access, acl.project_access)
        self.assertIsNotNone(acl.created)
        self.assertIsNotNone(acl.updated)
        self.assertEqual(acl_type, acl_entity._acl_type)

        # read acl as property lookup
        acl = acl_entity.read
        self.assertEqual(set(expect_users), set(acl.users))
        self.assertEqual(expect_project_access, acl.project_access)


    @utils.parameterized_dataset(ACL_SUBMIT_DATA_NEGATIVE)