summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/identity/v3/implied_role.py6
-rw-r--r--openstackclient/tests/functional/identity/v3/common.py13
-rw-r--r--openstackclient/tests/functional/identity/v3/test_role.py25
-rw-r--r--openstackclient/tests/functional/volume/v1/test_volume_type.py115
-rw-r--r--openstackclient/tests/functional/volume/v2/test_qos.py5
-rw-r--r--openstackclient/tests/functional/volume/v2/test_volume_type.py132
-rw-r--r--openstackclient/tests/unit/identity/v3/fakes.py2
-rw-r--r--openstackclient/tests/unit/identity/v3/test_implied_role.py32
8 files changed, 238 insertions, 92 deletions
diff --git a/openstackclient/identity/v3/implied_role.py b/openstackclient/identity/v3/implied_role.py
index c7623389..4e3df88a 100644
--- a/openstackclient/identity/v3/implied_role.py
+++ b/openstackclient/identity/v3/implied_role.py
@@ -71,7 +71,7 @@ class CreateImpliedRole(command.ShowOne):
identity_client = self.app.client_manager.identity
(prior_role_id, implied_role_id) = _get_role_ids(
identity_client, parsed_args)
- response = identity_client.roles.create_implied(
+ response = identity_client.inference_rules.create(
prior_role_id, implied_role_id)
response._info.pop('links', None)
return zip(*sorted([(k, v['id'])
@@ -101,7 +101,7 @@ class DeleteImpliedRole(command.Command):
identity_client = self.app.client_manager.identity
(prior_role_id, implied_role_id) = _get_role_ids(
identity_client, parsed_args)
- identity_client.roles.delete_implied(
+ identity_client.inference_rules.delete(
prior_role_id, implied_role_id)
@@ -125,5 +125,5 @@ class ListImpliedRole(command.Lister):
implies['name'])
identity_client = self.app.client_manager.identity
- response = identity_client.roles.list_inference_roles()
+ response = identity_client.inference_rules.list_inference_roles()
return (self._COLUMNS, _list_implied(response))
diff --git a/openstackclient/tests/functional/identity/v3/common.py b/openstackclient/tests/functional/identity/v3/common.py
index 33cb5d86..54132be5 100644
--- a/openstackclient/tests/functional/identity/v3/common.py
+++ b/openstackclient/tests/functional/identity/v3/common.py
@@ -52,6 +52,8 @@ class IdentityTests(base.TestCase):
'id', 'relay_state_prefix', 'sp_url']
SERVICE_PROVIDER_LIST_HEADERS = ['ID', 'Enabled', 'Description',
'Auth URL']
+ IMPLIED_ROLE_LIST_HEADERS = ['Prior Role ID', 'Prior Role Name',
+ 'Implied Role ID', 'Implied Role Name']
@classmethod
def setUpClass(cls):
@@ -149,6 +151,17 @@ class IdentityTests(base.TestCase):
self.assertEqual(role_name, role['name'])
return role_name
+ def _create_dummy_implied_role(self, add_clean_up=True):
+ role_name = self._create_dummy_role(add_clean_up)
+ implied_role_name = self._create_dummy_role(add_clean_up)
+ self.openstack(
+ 'implied role create '
+ '--implied-role %(implied_role)s '
+ '%(role)s' % {'implied_role': implied_role_name,
+ 'role': role_name})
+
+ return implied_role_name, role_name
+
def _create_dummy_group(self, add_clean_up=True):
group_name = data_utils.rand_name('TestGroup')
description = data_utils.rand_name('description')
diff --git a/openstackclient/tests/functional/identity/v3/test_role.py b/openstackclient/tests/functional/identity/v3/test_role.py
index ab8af9c0..fb9e0614 100644
--- a/openstackclient/tests/functional/identity/v3/test_role.py
+++ b/openstackclient/tests/functional/identity/v3/test_role.py
@@ -143,3 +143,28 @@ class RoleTests(common.IdentityTests):
'role': role_name})
self.assertEqual(0, len(add_raw_output))
self.assertEqual(0, len(remove_raw_output))
+
+ def test_implied_role_list(self):
+ self._create_dummy_implied_role()
+ raw_output = self.openstack('implied role list')
+ items = self.parse_listing(raw_output)
+ self.assert_table_structure(items, self.IMPLIED_ROLE_LIST_HEADERS)
+ self.assertEqual(3, len(items))
+
+ def test_implied_role_create(self):
+ role_name = self._create_dummy_role()
+ implied_role_name = self._create_dummy_role()
+ self.openstack(
+ 'implied role create '
+ '--implied-role %(implied_role)s '
+ '%(role)s' % {'implied_role': implied_role_name,
+ 'role': role_name})
+
+ def test_implied_role_delete(self):
+ implied_role_name, role_name = self._create_dummy_implied_role()
+ raw_output = self.openstack(
+ 'implied role delete '
+ '--implied-role %(implied_role)s '
+ '%(role)s' % {'implied_role': implied_role_name,
+ 'role': role_name})
+ self.assertEqual(0, len(raw_output))
diff --git a/openstackclient/tests/functional/volume/v1/test_volume_type.py b/openstackclient/tests/functional/volume/v1/test_volume_type.py
index c5886a69..eb9d7f64 100644
--- a/openstackclient/tests/functional/volume/v1/test_volume_type.py
+++ b/openstackclient/tests/functional/volume/v1/test_volume_type.py
@@ -20,62 +20,92 @@ from openstackclient.tests.functional.volume.v1 import common
class VolumeTypeTests(common.BaseVolumeTests):
"""Functional tests for volume type. """
- NAME = uuid.uuid4().hex
-
- @classmethod
- def setUpClass(cls):
- super(VolumeTypeTests, cls).setUpClass()
- cmd_output = json.loads(cls.openstack(
- 'volume type create -f json %s' % cls.NAME))
- cls.assertOutput(cls.NAME, cmd_output['name'])
-
- @classmethod
- def tearDownClass(cls):
- try:
- raw_output = cls.openstack('volume type delete %s' % cls.NAME)
- cls.assertOutput('', raw_output)
- finally:
- super(VolumeTypeTests, cls).tearDownClass()
-
- def test_volume_type_list(self):
+ def test_volume_type_create_list(self):
+ name = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume type create -f json --private ' +
+ name,
+ ))
+ self.addCleanup(
+ self.openstack,
+ 'volume type delete ' +
+ name,
+ )
+ self.assertEqual(name, cmd_output['name'])
+
+ cmd_output = json.loads(self.openstack(
+ 'volume type show -f json %s' % name
+ ))
+ self.assertEqual(self.NAME, cmd_output['name'])
+
cmd_output = json.loads(self.openstack('volume type list -f json'))
self.assertIn(self.NAME, [t['Name'] for t in cmd_output])
- def test_volume_type_show(self):
cmd_output = json.loads(self.openstack(
- 'volume type show -f json %s' % self.NAME))
- self.assertEqual(self.NAME, cmd_output['name'])
+ 'volume type list -f json --default'
+ ))
+ self.assertEqual(1, len(cmd_output))
+ self.assertEqual('lvmdriver-1', cmd_output[0]['Name'])
def test_volume_type_set_unset_properties(self):
+ name = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume type create -f json --private ' +
+ name,
+ ))
+ self.addCleanup(
+ self.openstack,
+ 'volume type delete ' + name
+ )
+ self.assertEqual(name, cmd_output['name'])
+
raw_output = self.openstack(
- 'volume type set --property a=b --property c=d %s' % self.NAME)
+ 'volume type set --property a=b --property c=d %s' % name
+ )
self.assertEqual("", raw_output)
-
cmd_output = json.loads(self.openstack(
- 'volume type show -f json ' + self.NAME))
+ 'volume type show -f json %s' % name
+ ))
+ # TODO(amotoki): properties output should be machine-readable
self.assertEqual("a='b', c='d'", cmd_output['properties'])
- raw_output = self.openstack('volume type unset --property a %s' %
- self.NAME)
+ raw_output = self.openstack(
+ 'volume type unset --property a %s' % name
+ )
self.assertEqual("", raw_output)
cmd_output = json.loads(self.openstack(
- 'volume type show -f json %s' % self.NAME))
+ 'volume type show -f json %s' % name
+ ))
self.assertEqual("c='d'", cmd_output['properties'])
def test_volume_type_set_unset_multiple_properties(self):
+ name = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume type create -f json --private ' +
+ name,
+ ))
+ self.addCleanup(
+ self.openstack,
+ 'volume type delete ' + name
+ )
+ self.assertEqual(name, cmd_output['name'])
+
raw_output = self.openstack(
- 'volume type set --property a=b --property c=d %s' % self.NAME)
+ 'volume type set --property a=b --property c=d %s' % name
+ )
self.assertEqual("", raw_output)
-
cmd_output = json.loads(self.openstack(
- 'volume type show -f json %s' % self.NAME))
+ 'volume type show -f json %s' % name
+ ))
self.assertEqual("a='b', c='d'", cmd_output['properties'])
raw_output = self.openstack(
- 'volume type unset --property a --property c %s' % self.NAME)
+ 'volume type unset --property a --property c %s' % name
+ )
self.assertEqual("", raw_output)
cmd_output = json.loads(self.openstack(
- 'volume type show -f json %s' % self.NAME))
+ 'volume type show -f json %s' % name
+ ))
self.assertEqual("", cmd_output['properties'])
def test_multi_delete(self):
@@ -140,8 +170,21 @@ class VolumeTypeTests(common.BaseVolumeTests):
'--encryption-control-location front-end ' +
self.NAME)
self.assertEqual('', raw_output)
+
+ name = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume type create -f json --private ' +
+ name,
+ ))
+ self.addCleanup(
+ self.openstack,
+ 'volume type delete ' + name,
+ )
+ self.assertEqual(name, cmd_output['name'])
+
cmd_output = json.loads(self.openstack(
- 'volume type show -f json --encryption-type ' + self.NAME))
+ 'volume type show -f json --encryption-type ' + name
+ ))
expected = ["provider='LuksEncryptor'",
"cipher='aes-xts-plain64'",
"key_size='128'",
@@ -150,10 +193,12 @@ class VolumeTypeTests(common.BaseVolumeTests):
self.assertIn(attr, cmd_output['encryption'])
# test unset encryption type
raw_output = self.openstack(
- 'volume type unset --encryption-type ' + self.NAME)
+ 'volume type unset --encryption-type ' + name
+ )
self.assertEqual('', raw_output)
cmd_output = json.loads(self.openstack(
- 'volume type show -f json --encryption-type ' + self.NAME))
+ 'volume type show -f json --encryption-type ' + name
+ ))
self.assertEqual('', cmd_output['encryption'])
# test delete encryption type
raw_output = self.openstack('volume type delete ' + encryption_type)
diff --git a/openstackclient/tests/functional/volume/v2/test_qos.py b/openstackclient/tests/functional/volume/v2/test_qos.py
index 888f12b1..646becc1 100644
--- a/openstackclient/tests/functional/volume/v2/test_qos.py
+++ b/openstackclient/tests/functional/volume/v2/test_qos.py
@@ -125,7 +125,6 @@ class QosTests(common.BaseVolumeTests):
def test_volume_qos_asso_disasso(self):
"""Tests associate and disassociate qos with volume type"""
vol_type1 = uuid.uuid4().hex
- vol_type2 = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
'volume type create -f json ' +
vol_type1
@@ -134,6 +133,9 @@ class QosTests(common.BaseVolumeTests):
vol_type1,
cmd_output['name']
)
+ self.addCleanup(self.openstack, 'volume type delete ' + vol_type1)
+
+ vol_type2 = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
'volume type create -f json ' +
vol_type2
@@ -142,7 +144,6 @@ class QosTests(common.BaseVolumeTests):
vol_type2,
cmd_output['name']
)
- self.addCleanup(self.openstack, 'volume type delete ' + vol_type1)
self.addCleanup(self.openstack, 'volume type delete ' + vol_type2)
name = uuid.uuid4().hex
diff --git a/openstackclient/tests/functional/volume/v2/test_volume_type.py b/openstackclient/tests/functional/volume/v2/test_volume_type.py
index 5c551ca9..d8dd5bd6 100644
--- a/openstackclient/tests/functional/volume/v2/test_volume_type.py
+++ b/openstackclient/tests/functional/volume/v2/test_volume_type.py
@@ -20,76 +20,113 @@ from openstackclient.tests.functional.volume.v2 import common
class VolumeTypeTests(common.BaseVolumeTests):
"""Functional tests for volume type. """
- NAME = uuid.uuid4().hex
-
- @classmethod
- def setUpClass(cls):
- super(VolumeTypeTests, cls).setUpClass()
- cmd_output = json.loads(cls.openstack(
- 'volume type create -f json --private %s' % cls.NAME))
- cls.assertOutput(cls.NAME, cmd_output['name'])
-
- @classmethod
- def tearDownClass(cls):
- try:
- raw_output = cls.openstack('volume type delete %s' % cls.NAME)
- cls.assertOutput('', raw_output)
- finally:
- super(VolumeTypeTests, cls).tearDownClass()
-
- def test_volume_type_list(self):
+ def test_volume_type_create_list(self):
+ name = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume type create -f json --private ' +
+ name,
+ ))
+ self.addCleanup(
+ self.openstack,
+ 'volume type delete ' + name,
+ )
+ self.assertEqual(name, cmd_output['name'])
+
+ cmd_output = json.loads(self.openstack(
+ 'volume type show -f json %s' % name
+ ))
+ self.assertEqual(name, cmd_output['name'])
+
cmd_output = json.loads(self.openstack('volume type list -f json'))
- self.assertIn(self.NAME, [t['Name'] for t in cmd_output])
+ self.assertIn(name, [t['Name'] for t in cmd_output])
- def test_volume_type_list_default(self):
cmd_output = json.loads(self.openstack(
- 'volume type list -f json --default'))
+ 'volume type list -f json --default'
+ ))
self.assertEqual(1, len(cmd_output))
self.assertEqual('lvmdriver-1', cmd_output[0]['Name'])
- def test_volume_type_show(self):
+ def test_volume_type_set_unset_properties(self):
+ name = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
- 'volume type show -f json %s' % self.NAME))
- self.assertEqual(self.NAME, cmd_output['name'])
+ 'volume type create -f json --private ' +
+ name,
+ ))
+ self.addCleanup(
+ self.openstack,
+ 'volume type delete ' + name
+ )
+ self.assertEqual(name, cmd_output['name'])
- def test_volume_type_set_unset_properties(self):
raw_output = self.openstack(
- 'volume type set --property a=b --property c=d %s' % self.NAME)
+ 'volume type set --property a=b --property c=d %s' % name
+ )
self.assertEqual("", raw_output)
cmd_output = json.loads(self.openstack(
- 'volume type show -f json %s' % self.NAME))
+ 'volume type show -f json %s' % name
+ ))
# TODO(amotoki): properties output should be machine-readable
self.assertEqual("a='b', c='d'", cmd_output['properties'])
- raw_output = self.openstack('volume type unset --property a %s' %
- self.NAME)
+ raw_output = self.openstack(
+ 'volume type unset --property a %s' % name
+ )
self.assertEqual("", raw_output)
cmd_output = json.loads(self.openstack(
- 'volume type show -f json %s' % self.NAME))
+ 'volume type show -f json %s' % name
+ ))
self.assertEqual("c='d'", cmd_output['properties'])
def test_volume_type_set_unset_multiple_properties(self):
+ name = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume type create -f json --private ' +
+ name,
+ ))
+ self.addCleanup(
+ self.openstack,
+ 'volume type delete ' + name
+ )
+ self.assertEqual(name, cmd_output['name'])
+
raw_output = self.openstack(
- 'volume type set --property a=b --property c=d %s' % self.NAME)
+ 'volume type set --property a=b --property c=d %s' % name
+ )
self.assertEqual("", raw_output)
cmd_output = json.loads(self.openstack(
- 'volume type show -f json %s' % self.NAME))
+ 'volume type show -f json %s' % name
+ ))
self.assertEqual("a='b', c='d'", cmd_output['properties'])
raw_output = self.openstack(
- 'volume type unset --property a --property c %s' % self.NAME)
+ 'volume type unset --property a --property c %s' % name
+ )
self.assertEqual("", raw_output)
cmd_output = json.loads(self.openstack(
- 'volume type show -f json %s' % self.NAME))
+ 'volume type show -f json %s' % name
+ ))
self.assertEqual("", cmd_output['properties'])
def test_volume_type_set_unset_project(self):
+ name = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume type create -f json --private ' +
+ name,
+ ))
+ self.addCleanup(
+ self.openstack,
+ 'volume type delete ' + name
+ )
+ self.assertEqual(name, cmd_output['name'])
+
raw_output = self.openstack(
- 'volume type set --project admin %s' % self.NAME)
+ 'volume type set --project admin %s' % name
+ )
self.assertEqual("", raw_output)
raw_output = self.openstack(
- 'volume type unset --project admin %s' % self.NAME)
+ 'volume type unset --project admin %s' % name
+ )
self.assertEqual("", raw_output)
def test_multi_delete(self):
@@ -108,6 +145,7 @@ class VolumeTypeTests(common.BaseVolumeTests):
# these to new test format when beef up all tests for
# volume tye commands.
def test_encryption_type(self):
+ name = uuid.uuid4().hex
encryption_type = uuid.uuid4().hex
# test create new encryption type
cmd_output = json.loads(self.openstack(
@@ -162,16 +200,28 @@ class VolumeTypeTests(common.BaseVolumeTests):
for attr in expected:
self.assertIn(attr, cmd_output['encryption'])
# test set new encryption type
+ cmd_output = json.loads(self.openstack(
+ 'volume type create -f json --private ' +
+ name,
+ ))
+ self.addCleanup(
+ self.openstack,
+ 'volume type delete ' + name,
+ )
+ self.assertEqual(name, cmd_output['name'])
+
raw_output = self.openstack(
'volume type set '
'--encryption-provider LuksEncryptor '
'--encryption-cipher aes-xts-plain64 '
'--encryption-key-size 128 '
'--encryption-control-location front-end ' +
- self.NAME)
+ name)
self.assertEqual('', raw_output)
+
cmd_output = json.loads(self.openstack(
- 'volume type show -f json --encryption-type ' + self.NAME))
+ 'volume type show -f json --encryption-type ' + name
+ ))
expected = ["provider='LuksEncryptor'",
"cipher='aes-xts-plain64'",
"key_size='128'",
@@ -180,10 +230,12 @@ class VolumeTypeTests(common.BaseVolumeTests):
self.assertIn(attr, cmd_output['encryption'])
# test unset encryption type
raw_output = self.openstack(
- 'volume type unset --encryption-type ' + self.NAME)
+ 'volume type unset --encryption-type ' + name
+ )
self.assertEqual('', raw_output)
cmd_output = json.loads(self.openstack(
- 'volume type show -f json --encryption-type ' + self.NAME))
+ 'volume type show -f json --encryption-type ' + name
+ ))
self.assertEqual('', cmd_output['encryption'])
# test delete encryption type
raw_output = self.openstack('volume type delete ' + encryption_type)
diff --git a/openstackclient/tests/unit/identity/v3/fakes.py b/openstackclient/tests/unit/identity/v3/fakes.py
index 77928792..7aa9cd7c 100644
--- a/openstackclient/tests/unit/identity/v3/fakes.py
+++ b/openstackclient/tests/unit/identity/v3/fakes.py
@@ -576,6 +576,8 @@ class FakeIdentityv3Client(object):
self.application_credentials = mock.Mock()
self.application_credentials.resource_class = fakes.FakeResource(None,
{})
+ self.inference_rules = mock.Mock()
+ self.inference_rules.resource_class = fakes.FakeResource(None, {})
class FakeFederationManager(object):
diff --git a/openstackclient/tests/unit/identity/v3/test_implied_role.py b/openstackclient/tests/unit/identity/v3/test_implied_role.py
index 08273f73..74968129 100644
--- a/openstackclient/tests/unit/identity/v3/test_implied_role.py
+++ b/openstackclient/tests/unit/identity/v3/test_implied_role.py
@@ -25,26 +25,32 @@ class TestRole(identity_fakes.TestIdentityv3):
def setUp(self):
super(TestRole, self).setUp()
+ identity_client = self.app.client_manager.identity
+
# Get a shortcut to the UserManager Mock
- self.users_mock = self.app.client_manager.identity.users
+ self.users_mock = identity_client.users
self.users_mock.reset_mock()
# Get a shortcut to the UserManager Mock
- self.groups_mock = self.app.client_manager.identity.groups
+ self.groups_mock = identity_client.groups
self.groups_mock.reset_mock()
# Get a shortcut to the DomainManager Mock
- self.domains_mock = self.app.client_manager.identity.domains
+ self.domains_mock = identity_client.domains
self.domains_mock.reset_mock()
# Get a shortcut to the ProjectManager Mock
- self.projects_mock = self.app.client_manager.identity.projects
+ self.projects_mock = identity_client.projects
self.projects_mock.reset_mock()
# Get a shortcut to the RoleManager Mock
- self.roles_mock = self.app.client_manager.identity.roles
+ self.roles_mock = identity_client.roles
self.roles_mock.reset_mock()
+ # Get a shortcut to the InferenceRuleManager Mock
+ self.inference_rules_mock = identity_client.inference_rules
+ self.inference_rules_mock.reset_mock()
+
def _is_inheritance_testcase(self):
return False
@@ -67,12 +73,13 @@ class TestImpliedRoleCreate(TestRole):
),
]
- self.roles_mock.create_implied.return_value = fakes.FakeResource(
+ fake_resource = fakes.FakeResource(
None,
{'prior_role': copy.deepcopy(identity_fakes.ROLES[0]),
'implied': copy.deepcopy(identity_fakes.ROLES[1]), },
loaded=True,
)
+ self.inference_rules_mock.create.return_value = fake_resource
self.cmd = implied_role.CreateImpliedRole(self.app, None)
@@ -93,8 +100,8 @@ class TestImpliedRoleCreate(TestRole):
# data to be shown.
columns, data = self.cmd.take_action(parsed_args)
- # RoleManager.create_implied(prior, implied)
- self.roles_mock.create_implied.assert_called_with(
+ # InferenceRuleManager.create(prior, implied)
+ self.inference_rules_mock.create.assert_called_with(
identity_fakes.ROLES[0]['id'],
identity_fakes.ROLES[1]['id']
)
@@ -126,12 +133,13 @@ class TestImpliedRoleDelete(TestRole):
),
]
- self.roles_mock.delete_implied.return_value = fakes.FakeResource(
+ fake_resource = fakes.FakeResource(
None,
{'prior-role': copy.deepcopy(identity_fakes.ROLES[0]),
'implied': copy.deepcopy(identity_fakes.ROLES[1]), },
loaded=True,
)
+ self.inference_rules_mock.delete.return_value = fake_resource
self.cmd = implied_role.DeleteImpliedRole(self.app, None)
@@ -147,7 +155,7 @@ class TestImpliedRoleDelete(TestRole):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
- self.roles_mock.delete_implied.assert_called_with(
+ self.inference_rules_mock.delete.assert_called_with(
identity_fakes.ROLES[0]['id'],
identity_fakes.ROLES[1]['id']
)
@@ -158,7 +166,7 @@ class TestImpliedRoleList(TestRole):
def setUp(self):
super(TestImpliedRoleList, self).setUp()
- self.roles_mock.list_inference_roles.return_value = (
+ self.inference_rules_mock.list_inference_roles.return_value = (
identity_fakes.FakeImpliedRoleResponse.create_list())
self.cmd = implied_role.ListImpliedRole(self.app, None)
@@ -168,7 +176,7 @@ class TestImpliedRoleList(TestRole):
verifylist = []
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
- self.roles_mock.list_inference_roles.assert_called_with()
+ self.inference_rules_mock.list_inference_roles.assert_called_with()
collist = ['Prior Role ID', 'Prior Role Name',
'Implied Role ID', 'Implied Role Name']