# 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

    'container_users_no_project_access_empty_add': {
        'users': ['u1', 'u2', 'u3'], 'project_access': False,
        'entity_ref_method': '_create_a_container', 'acl_type': 'container',
        'remove_users': [],
        'expect_users': ['u1', 'u2', 'u3'], 'expect_project_access': False},

    'container_empty_users_with_project_access_none_add_users': {
        'users': [], 'project_access': True,
        'entity_ref_method': '_create_a_container', 'acl_type': 'container',
        'remove_users': None,
        'expect_users': [], 'expect_project_access': True},

    'secret_users_modify_access_flag_in_remove': {
        'users': ['u1', 'u2', 'u3'], 'project_access': False,
        'entity_ref_method': '_create_a_secret', 'acl_type': 'secret',
        'remove_users': [], 'remove_project_access': True,
        'expect_users': ['u1', 'u2', 'u3'], 'expect_project_access': True},
}

ACL_REMOVE_USERS_DATA_NEGATIVE = {
    'secret_users_incorrect_access_flag_during_add': {
        'users': ['u1', 'u2'], 'project_access': False,
        'entity_ref_method': '_create_a_secret', 'acl_type': 'secret',
        'remove_users': ['u5'], 'remove_project_access': 'Incorrect',
        'expect_users': ['u1', 'u2'], 'expect_project_access': False,
        'expect_error': True, 'error_code': 400},
}



# 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


    'container_users_no_project_access_empty_add': {
        'users': ['u1', 'u2', 'u3'], 'project_access': False,
        'entity_ref_method': '_create_a_container', 'acl_type': 'container',
        'remove_users': [],
        'expect_users': ['u1', 'u2', 'u3'], 'expect_project_access': False},

    'container_empty_users_with_project_access_none_add_users': {
        'users': [], 'project_access': True,
        'entity_ref_method': '_create_a_container', 'acl_type': 'container',
        'remove_users': None,
        'expect_users': [], 'expect_project_access': True},

    'secret_users_modify_access_flag_in_remove': {
        'users': ['u1', 'u2', 'u3'], 'project_access': False,
        'entity_ref_method': '_create_a_secret', 'acl_type': 'secret',
        'remove_users': [], 'remove_project_access': True,
        'expect_users': ['u1', 'u2', 'u3'], 'expect_project_access': True},
}

ACL_REMOVE_USERS_DATA_NEGATIVE = {
    'secret_users_incorrect_access_flag_during_add': {
        'users': ['u1', 'u2'], 'project_access': False,
        'entity_ref_method': '_create_a_secret', 'acl_type': 'secret',
        'remove_users': ['u5'], 'remove_project_access': 'Incorrect',
        'expect_users': ['u1', 'u2'], 'expect_project_access': False,
        'expect_error': True, 'error_code': 400},
}



class BaseACLsTestCase(base.TestCase):