def test_init(self, mock_create): mock_create.return_value = self.conn kc = kv3.KeystoneClient({'k': 'v'}) mock_create.assert_called_once_with({'k': 'v'}) self.assertEqual(self.conn, kc.conn) self.assertEqual(self.conn.session, kc.session)
def test_service_get(self, mock_create): self.conn.identity.services.return_value = ['fake_service'] mock_create.return_value = self.conn kc = kv3.KeystoneClient({'k': 'v'}) res = kc.service_get('FAKE_TYPE') self.assertEqual('fake_service', res) self.conn.identity.services.assert_called_once_with(type='FAKE_TYPE') self.conn.reset_mock() # with name res = kc.service_get('FAKE_TYPE', 'FAKE_NAME') self.assertEqual('fake_service', res) self.conn.identity.services.assert_called_once_with(type='FAKE_TYPE', name='FAKE_NAME') self.conn.reset_mock() # returning none self.conn.identity.services.return_value = [] res = kc.service_get('FAKE_TYPE') self.assertEqual(None, res) self.conn.identity.services.assert_called_once_with(type='FAKE_TYPE')
def test_validate_regions(self, mock_create): self.conn.identity.regions.return_value = [ { 'id': 'R1', 'parent_region_id': None }, { 'id': 'R2', 'parent_region_id': None }, { 'id': 'R3', 'parent_region_id': 'R1' }, ] mock_create.return_value = self.conn kc = kv3.KeystoneClient({'k': 'v'}) res = kc.validate_regions(['R1', 'R4']) self.assertIn('R1', res) self.assertNotIn('R4', res) res = kc.validate_regions([]) self.assertEqual([], res)
def test_trust_delete(self, mock_create): mock_create.return_value = self.conn kc = kv3.KeystoneClient({'k': 'v'}) res = kc.trust_delete('value') self.assertEqual(None, res) self.conn.identity.delete_trust.assert_called_once_with( 'value', ignore_missing=True)
def test_trust_list(self, mock_create): self.conn.identity.trusts.return_value = ('foo', 'bar') mock_create.return_value = self.conn kc = kv3.KeystoneClient({'k': 'v'}) res = kc.trust_list(p1='v1', p2='v2') self.assertEqual(['foo', 'bar'], res) self.conn.identity.trusts.assert_called_once_with(p1='v1', p2='v2')
def test_region_list(self, mock_create): self.conn.identity.regions.return_value = ['fake_region'] mock_create.return_value = self.conn kc = kv3.KeystoneClient({'k': 'v'}) res = kc.region_list(p1='v1', p2='v2') self.assertEqual(['fake_region'], res) self.conn.identity.regions.assert_called_once_with(p1='v1', p2='v2')
def test_user_get(self, mock_create): self.conn.identity.find_user.return_value = 'user1' mock_create.return_value = self.conn kc = kv3.KeystoneClient({'k': 'v'}) res = kc.user_get('user_id_or_name') self.assertEqual('user1', res) self.conn.identity.find_user.assert_called_once_with( 'user_id_or_name', ignore_missing=False)
def test_service_get(self, mock_create): svc = mock.Mock() self.conn.identity.services.return_value = svc mock_create.return_value = self.conn kc = kv3.KeystoneClient({'k': 'v'}) res = kc.service_get('clustering') self.assertEqual(svc, res) self.conn.identity.services.assert_called_once_with(type='clustering')
def test_get_senlin_endpoint(self, mock_create): cfg.CONF.set_override('default_region_name', 'RegionN', enforce_type=True) self.conn.session.get_endpoint.return_value = 'http://web.com:1234/v1' mock_create.return_value = self.conn kc = kv3.KeystoneClient({'k': 'v'}) res = kc.get_senlin_endpoint() self.assertEqual('http://web.com:1234/v1', res) self.conn.session.get_endpoint.assert_called_once_with( service_type='clustering', interface='public', region='RegionN')
def test_trust_create(self, mock_create): self.conn.identity.create_trust.return_value = 'new_trust' mock_create.return_value = self.conn kc = kv3.KeystoneClient({'k': 'v'}) # default res = kc.trust_create('ID_JOHN', 'ID_DOE', 'PROJECT_ID') self.assertEqual('new_trust', res) self.conn.identity.create_trust.assert_called_once_with( trustor_user_id='ID_JOHN', trustee_user_id='ID_DOE', project_id='PROJECT_ID', impersonation=True, allow_redelegation=True, roles=[]) self.conn.reset_mock() # with roles res = kc.trust_create('ID_JOHN', 'ID_DOE', 'PROJECT_ID', ['r1', 'r2']) self.assertEqual('new_trust', res) self.conn.identity.create_trust.assert_called_once_with( trustor_user_id='ID_JOHN', trustee_user_id='ID_DOE', project_id='PROJECT_ID', impersonation=True, allow_redelegation=True, roles=[{ 'name': 'r1' }, { 'name': 'r2' }]) self.conn.reset_mock() # impersonation res = kc.trust_create('ID_JOHN', 'ID_DOE', 'PROJECT_ID', impersonation=False) self.assertEqual('new_trust', res) self.conn.identity.create_trust.assert_called_once_with( trustor_user_id='ID_JOHN', trustee_user_id='ID_DOE', project_id='PROJECT_ID', impersonation=False, allow_redelegation=True, roles=[]) self.conn.reset_mock()
def test_trust_get_by_trustor(self, mock_create): trust1 = mock.Mock() trust1.trustee_user_id = 'USER_A_ID' trust1.project_id = 'PROJECT_ID_1' trust2 = mock.Mock() trust2.trustee_user_id = 'USER_B_ID' trust2.project_id = 'PROJECT_ID_1' trust3 = mock.Mock() trust3.trustee_user_id = 'USER_A_ID' trust3.project_id = 'PROJECT_ID_2' self.conn.identity.trusts.return_value = [trust1, trust2, trust3] mock_create.return_value = self.conn kc = kv3.KeystoneClient({'k': 'v'}) # no trustee/projec filter, matching 1st res = kc.trust_get_by_trustor('USER_A') self.assertEqual(trust1, res) # trustee specified, matching 2nd res = kc.trust_get_by_trustor('USER_A', 'USER_B_ID') self.assertEqual(trust2, res) # project specified, matching 3rd res = kc.trust_get_by_trustor('USER_A', project='PROJECT_ID_2') self.assertEqual(trust3, res) # both trustee and project specified, matching 3rd res = kc.trust_get_by_trustor('USER_A', 'USER_A_ID', 'PROJECT_ID_2') self.assertEqual(trust3, res) # No matching record found res = kc.trust_get_by_trustor('USER_A', 'USER_C_ID') self.assertEqual(None, res) get_calls = [mock.call(trustor_user_id='USER_A')] self.conn.identity.trusts.assert_has_calls(get_calls * 5)
def test_endpoint_get(self, mock_create): self.conn.identity.endpoints.return_value = ['fake_endpoint'] mock_create.return_value = self.conn kc = kv3.KeystoneClient({'k': 'v'}) res = kc.endpoint_get('FAKE_ID') self.assertEqual('fake_endpoint', res) self.conn.identity.endpoints.assert_called_once_with( service_id='FAKE_ID') self.conn.reset_mock() # with region res = kc.endpoint_get('FAKE_ID', 'FAKE_REGION') self.assertEqual('fake_endpoint', res) self.conn.identity.endpoints.assert_called_once_with( service_id='FAKE_ID', region='FAKE_REGION') self.conn.reset_mock() # with interface res = kc.endpoint_get('FAKE_ID', None, 'public') self.assertEqual('fake_endpoint', res) self.conn.identity.endpoints.assert_called_once_with( service_id='FAKE_ID', interface='public') self.conn.reset_mock() # returning None self.conn.identity.endpoints.return_value = [] res = kc.endpoint_get('FAKE_ID') self.assertEqual(None, res) self.conn.identity.endpoints.assert_called_once_with( service_id='FAKE_ID')