Use UUID values in v3 test fixtures
The fixtures will automatically stub UUID values for required token fields, so we can check for those returned values rather than specify fixed string values. Change-Id: I8a6cc675c6c8ee14772a38d8fc38475885ebc605
This commit is contained in:
@@ -325,6 +325,14 @@ class Token(dict):
|
||||
def audit_chain_id(self, value):
|
||||
self.root['audit_ids'] = [self.audit_id, value]
|
||||
|
||||
@property
|
||||
def role_ids(self):
|
||||
return [r['id'] for r in self.root.get('roles', [])]
|
||||
|
||||
@property
|
||||
def role_names(self):
|
||||
return [r['name'] for r in self.root.get('roles', [])]
|
||||
|
||||
def validate(self):
|
||||
project = self.root.get('project')
|
||||
domain = self.root.get('domain')
|
||||
|
@@ -16,26 +16,18 @@ import uuid
|
||||
from keystoneclient import fixture
|
||||
|
||||
|
||||
def unscoped_token():
|
||||
return fixture.V3Token(user_id='c4da488862bd435c9e6c0275a0d0e49a',
|
||||
user_name='exampleuser',
|
||||
user_domain_id='4e6893b7ba0b4006840c3845660b86ed',
|
||||
user_domain_name='exampledomain',
|
||||
expires='2010-11-01T03:32:15-05:00')
|
||||
def unscoped_token(**kwargs):
|
||||
return fixture.V3Token(**kwargs)
|
||||
|
||||
|
||||
def domain_scoped_token():
|
||||
f = fixture.V3Token(user_id='c4da488862bd435c9e6c0275a0d0e49a',
|
||||
user_name='exampleuser',
|
||||
user_domain_id='4e6893b7ba0b4006840c3845660b86ed',
|
||||
user_domain_name='exampledomain',
|
||||
expires='2010-11-01T03:32:15-05:00',
|
||||
domain_id='8e9283b7ba0b1038840c3842058b86ab',
|
||||
domain_name='anotherdomain',
|
||||
audit_chain_id=uuid.uuid4().hex)
|
||||
def domain_scoped_token(**kwargs):
|
||||
kwargs.setdefault('audit_chain_id', uuid.uuid4().hex)
|
||||
f = fixture.V3Token(**kwargs)
|
||||
if not f.domain_id:
|
||||
f.set_domain_scope()
|
||||
|
||||
f.add_role(id='76e72a', name='admin')
|
||||
f.add_role(id='f4f392', name='member')
|
||||
f.add_role(name='admin')
|
||||
f.add_role(name='member')
|
||||
region = 'RegionOne'
|
||||
|
||||
s = f.add_service('volume')
|
||||
@@ -71,20 +63,15 @@ def domain_scoped_token():
|
||||
return f
|
||||
|
||||
|
||||
def project_scoped_token():
|
||||
f = fixture.V3Token(user_id='c4da488862bd435c9e6c0275a0d0e49a',
|
||||
user_name='exampleuser',
|
||||
user_domain_id='4e6893b7ba0b4006840c3845660b86ed',
|
||||
user_domain_name='exampledomain',
|
||||
expires='2010-11-01T03:32:15-05:00',
|
||||
project_id='225da22d3ce34b15877ea70b2a575f58',
|
||||
project_name='exampleproject',
|
||||
project_domain_id='4e6893b7ba0b4006840c3845660b86ed',
|
||||
project_domain_name='exampledomain',
|
||||
audit_chain_id=uuid.uuid4().hex)
|
||||
def project_scoped_token(**kwargs):
|
||||
kwargs.setdefault('audit_chain_id', uuid.uuid4().hex)
|
||||
f = fixture.V3Token(**kwargs)
|
||||
|
||||
f.add_role(id='76e72a', name='admin')
|
||||
f.add_role(id='f4f392', name='member')
|
||||
if not f.project_id:
|
||||
f.set_project_scope()
|
||||
|
||||
f.add_role(name='admin')
|
||||
f.add_role(name='member')
|
||||
|
||||
region = 'RegionOne'
|
||||
tenant = '225da22d3ce34b15877ea70b2a575f58'
|
||||
@@ -122,7 +109,7 @@ def project_scoped_token():
|
||||
return f
|
||||
|
||||
|
||||
AUTH_SUBJECT_TOKEN = '3e2813b7ba0b4006840c3825860b86ed'
|
||||
AUTH_SUBJECT_TOKEN = uuid.uuid4().hex
|
||||
|
||||
AUTH_RESPONSE_HEADERS = {
|
||||
'X-Subject-Token': AUTH_SUBJECT_TOKEN,
|
||||
@@ -130,19 +117,11 @@ AUTH_RESPONSE_HEADERS = {
|
||||
|
||||
|
||||
def auth_response_body():
|
||||
f = fixture.V3Token(user_id='567',
|
||||
user_name='test',
|
||||
user_domain_id='1',
|
||||
user_domain_name='aDomain',
|
||||
expires='2010-11-01T03:32:15-05:00',
|
||||
project_domain_id='123',
|
||||
project_domain_name='aDomain',
|
||||
project_id='345',
|
||||
project_name='aTenant',
|
||||
audit_chain_id=uuid.uuid4().hex)
|
||||
f = fixture.V3Token(audit_chain_id=uuid.uuid4().hex)
|
||||
f.set_project_scope()
|
||||
|
||||
f.add_role(id='76e72a', name='admin')
|
||||
f.add_role(id='f4f392', name='member')
|
||||
f.add_role(name='admin')
|
||||
f.add_role(name='member')
|
||||
|
||||
s = f.add_service('compute', name='nova')
|
||||
s.add_standard_endpoints(
|
||||
@@ -175,13 +154,6 @@ def auth_response_body():
|
||||
|
||||
|
||||
def trust_token():
|
||||
return fixture.V3Token(user_id='0ca8f6',
|
||||
user_name='exampleuser',
|
||||
user_domain_id='4e6893b7ba0b4006840c3845660b86ed',
|
||||
user_domain_name='exampledomain',
|
||||
expires='2010-11-01T03:32:15-05:00',
|
||||
trust_id='fe0aef',
|
||||
trust_impersonation=False,
|
||||
trustee_user_id='0ca8f6',
|
||||
trustor_user_id='bd263c',
|
||||
audit_chain_id=uuid.uuid4().hex)
|
||||
f = fixture.V3Token(audit_chain_id=uuid.uuid4().hex)
|
||||
f.set_trust_scope()
|
||||
return f
|
||||
|
@@ -38,10 +38,10 @@ class AccessInfoTest(utils.TestCase):
|
||||
self.assertIn('methods', auth_ref)
|
||||
self.assertNotIn('catalog', auth_ref)
|
||||
|
||||
self.assertEqual(auth_ref.auth_token,
|
||||
'3e2813b7ba0b4006840c3825860b86ed')
|
||||
self.assertEqual(auth_ref.username, 'exampleuser')
|
||||
self.assertEqual(auth_ref.user_id, 'c4da488862bd435c9e6c0275a0d0e49a')
|
||||
self.assertEqual(client_fixtures.AUTH_SUBJECT_TOKEN,
|
||||
auth_ref.auth_token)
|
||||
self.assertEqual(UNSCOPED_TOKEN.user_name, auth_ref.username)
|
||||
self.assertEqual(UNSCOPED_TOKEN.user_id, auth_ref.user_id)
|
||||
|
||||
self.assertEqual(auth_ref.role_ids, [])
|
||||
self.assertEqual(auth_ref.role_names, [])
|
||||
@@ -55,9 +55,10 @@ class AccessInfoTest(utils.TestCase):
|
||||
self.assertFalse(auth_ref.domain_scoped)
|
||||
self.assertFalse(auth_ref.project_scoped)
|
||||
|
||||
self.assertEqual(auth_ref.user_domain_id,
|
||||
'4e6893b7ba0b4006840c3845660b86ed')
|
||||
self.assertEqual(auth_ref.user_domain_name, 'exampledomain')
|
||||
self.assertEqual(UNSCOPED_TOKEN.user_domain_id,
|
||||
auth_ref.user_domain_id)
|
||||
self.assertEqual(UNSCOPED_TOKEN.user_domain_name,
|
||||
auth_ref.user_domain_name)
|
||||
|
||||
self.assertIsNone(auth_ref.project_domain_id)
|
||||
self.assertIsNone(auth_ref.project_domain_name)
|
||||
@@ -92,24 +93,24 @@ class AccessInfoTest(utils.TestCase):
|
||||
self.assertIn('catalog', auth_ref)
|
||||
self.assertTrue(auth_ref['catalog'])
|
||||
|
||||
self.assertEqual(auth_ref.auth_token,
|
||||
'3e2813b7ba0b4006840c3825860b86ed')
|
||||
self.assertEqual(auth_ref.username, 'exampleuser')
|
||||
self.assertEqual(auth_ref.user_id, 'c4da488862bd435c9e6c0275a0d0e49a')
|
||||
self.assertEqual(client_fixtures.AUTH_SUBJECT_TOKEN,
|
||||
auth_ref.auth_token)
|
||||
self.assertEqual(DOMAIN_SCOPED_TOKEN.user_name, auth_ref.username)
|
||||
self.assertEqual(DOMAIN_SCOPED_TOKEN.user_id, auth_ref.user_id)
|
||||
|
||||
self.assertEqual(auth_ref.role_ids, ['76e72a', 'f4f392'])
|
||||
self.assertEqual(auth_ref.role_names, ['admin', 'member'])
|
||||
self.assertEqual(DOMAIN_SCOPED_TOKEN.role_ids, auth_ref.role_ids)
|
||||
self.assertEqual(DOMAIN_SCOPED_TOKEN.role_names, auth_ref.role_names)
|
||||
|
||||
self.assertEqual(auth_ref.domain_name, 'anotherdomain')
|
||||
self.assertEqual(auth_ref.domain_id,
|
||||
'8e9283b7ba0b1038840c3842058b86ab')
|
||||
self.assertEqual(DOMAIN_SCOPED_TOKEN.domain_name, auth_ref.domain_name)
|
||||
self.assertEqual(DOMAIN_SCOPED_TOKEN.domain_id, auth_ref.domain_id)
|
||||
|
||||
self.assertIsNone(auth_ref.project_name)
|
||||
self.assertIsNone(auth_ref.project_id)
|
||||
|
||||
self.assertEqual(auth_ref.user_domain_id,
|
||||
'4e6893b7ba0b4006840c3845660b86ed')
|
||||
self.assertEqual(auth_ref.user_domain_name, 'exampledomain')
|
||||
self.assertEqual(DOMAIN_SCOPED_TOKEN.user_domain_id,
|
||||
auth_ref.user_domain_id)
|
||||
self.assertEqual(DOMAIN_SCOPED_TOKEN.user_domain_name,
|
||||
auth_ref.user_domain_name)
|
||||
|
||||
self.assertIsNone(auth_ref.project_domain_id)
|
||||
self.assertIsNone(auth_ref.project_domain_name)
|
||||
@@ -130,20 +131,20 @@ class AccessInfoTest(utils.TestCase):
|
||||
self.assertIn('catalog', auth_ref)
|
||||
self.assertTrue(auth_ref['catalog'])
|
||||
|
||||
self.assertEqual(auth_ref.auth_token,
|
||||
'3e2813b7ba0b4006840c3825860b86ed')
|
||||
self.assertEqual(auth_ref.username, 'exampleuser')
|
||||
self.assertEqual(auth_ref.user_id, 'c4da488862bd435c9e6c0275a0d0e49a')
|
||||
self.assertEqual(client_fixtures.AUTH_SUBJECT_TOKEN,
|
||||
auth_ref.auth_token)
|
||||
self.assertEqual(PROJECT_SCOPED_TOKEN.user_name, auth_ref.username)
|
||||
self.assertEqual(PROJECT_SCOPED_TOKEN.user_id, auth_ref.user_id)
|
||||
|
||||
self.assertEqual(auth_ref.role_ids, ['76e72a', 'f4f392'])
|
||||
self.assertEqual(auth_ref.role_names, ['admin', 'member'])
|
||||
self.assertEqual(PROJECT_SCOPED_TOKEN.role_ids, auth_ref.role_ids)
|
||||
self.assertEqual(PROJECT_SCOPED_TOKEN.role_names, auth_ref.role_names)
|
||||
|
||||
self.assertIsNone(auth_ref.domain_name)
|
||||
self.assertIsNone(auth_ref.domain_id)
|
||||
|
||||
self.assertEqual(auth_ref.project_name, 'exampleproject')
|
||||
self.assertEqual(auth_ref.project_id,
|
||||
'225da22d3ce34b15877ea70b2a575f58')
|
||||
self.assertEqual(PROJECT_SCOPED_TOKEN.project_name,
|
||||
auth_ref.project_name)
|
||||
self.assertEqual(PROJECT_SCOPED_TOKEN.project_id, auth_ref.project_id)
|
||||
|
||||
self.assertEqual(auth_ref.tenant_name, auth_ref.project_name)
|
||||
self.assertEqual(auth_ref.tenant_id, auth_ref.project_id)
|
||||
@@ -153,13 +154,15 @@ class AccessInfoTest(utils.TestCase):
|
||||
self.assertEqual(auth_ref.management_url,
|
||||
('http://admin:35357/v3',))
|
||||
|
||||
self.assertEqual(auth_ref.project_domain_id,
|
||||
'4e6893b7ba0b4006840c3845660b86ed')
|
||||
self.assertEqual(auth_ref.project_domain_name, 'exampledomain')
|
||||
self.assertEqual(PROJECT_SCOPED_TOKEN.project_domain_id,
|
||||
auth_ref.project_domain_id)
|
||||
self.assertEqual(PROJECT_SCOPED_TOKEN.project_domain_name,
|
||||
auth_ref.project_domain_name)
|
||||
|
||||
self.assertEqual(auth_ref.user_domain_id,
|
||||
'4e6893b7ba0b4006840c3845660b86ed')
|
||||
self.assertEqual(auth_ref.user_domain_name, 'exampledomain')
|
||||
self.assertEqual(PROJECT_SCOPED_TOKEN.user_domain_id,
|
||||
auth_ref.user_domain_id)
|
||||
self.assertEqual(PROJECT_SCOPED_TOKEN.user_domain_name,
|
||||
auth_ref.user_domain_name)
|
||||
|
||||
self.assertFalse(auth_ref.domain_scoped)
|
||||
self.assertTrue(auth_ref.project_scoped)
|
||||
|
@@ -27,71 +27,67 @@ from keystoneclient.v3 import client
|
||||
class KeystoneClientTest(utils.TestCase):
|
||||
|
||||
def test_unscoped_init(self):
|
||||
self.stub_auth(json=client_fixtures.unscoped_token())
|
||||
token = client_fixtures.unscoped_token()
|
||||
self.stub_auth(json=token)
|
||||
|
||||
c = client.Client(user_domain_name='exampledomain',
|
||||
username='exampleuser',
|
||||
c = client.Client(user_domain_name=token.user_domain_name,
|
||||
username=token.user_name,
|
||||
password='password',
|
||||
auth_url=self.TEST_URL)
|
||||
self.assertIsNotNone(c.auth_ref)
|
||||
self.assertFalse(c.auth_ref.domain_scoped)
|
||||
self.assertFalse(c.auth_ref.project_scoped)
|
||||
self.assertEqual(c.auth_user_id,
|
||||
'c4da488862bd435c9e6c0275a0d0e49a')
|
||||
self.assertEqual(token.user_id, c.auth_user_id)
|
||||
self.assertFalse(c.has_service_catalog())
|
||||
|
||||
self.assertEqual('c4da488862bd435c9e6c0275a0d0e49a',
|
||||
c.get_user_id(session=None))
|
||||
self.assertEqual(token.user_id, c.get_user_id(session=None))
|
||||
self.assertIsNone(c.get_project_id(session=None))
|
||||
|
||||
def test_domain_scoped_init(self):
|
||||
self.stub_auth(json=client_fixtures.domain_scoped_token())
|
||||
token = client_fixtures.domain_scoped_token()
|
||||
self.stub_auth(json=token)
|
||||
|
||||
c = client.Client(user_id='c4da488862bd435c9e6c0275a0d0e49a',
|
||||
c = client.Client(user_id=token.user_id,
|
||||
password='password',
|
||||
domain_name='exampledomain',
|
||||
domain_name=token.domain_name,
|
||||
auth_url=self.TEST_URL)
|
||||
self.assertIsNotNone(c.auth_ref)
|
||||
self.assertTrue(c.auth_ref.domain_scoped)
|
||||
self.assertFalse(c.auth_ref.project_scoped)
|
||||
self.assertEqual(c.auth_user_id,
|
||||
'c4da488862bd435c9e6c0275a0d0e49a')
|
||||
self.assertEqual(c.auth_domain_id,
|
||||
'8e9283b7ba0b1038840c3842058b86ab')
|
||||
self.assertEqual(token.user_id, c.auth_user_id)
|
||||
self.assertEqual(token.domain_id, c.auth_domain_id)
|
||||
|
||||
def test_project_scoped_init(self):
|
||||
self.stub_auth(json=client_fixtures.project_scoped_token()),
|
||||
token = client_fixtures.project_scoped_token()
|
||||
self.stub_auth(json=token),
|
||||
|
||||
c = client.Client(user_id='c4da488862bd435c9e6c0275a0d0e49a',
|
||||
c = client.Client(user_id=token.user_id,
|
||||
password='password',
|
||||
user_domain_name='exampledomain',
|
||||
project_name='exampleproject',
|
||||
user_domain_name=token.user_domain_name,
|
||||
project_name=token.project_name,
|
||||
auth_url=self.TEST_URL)
|
||||
self.assertIsNotNone(c.auth_ref)
|
||||
self.assertFalse(c.auth_ref.domain_scoped)
|
||||
self.assertTrue(c.auth_ref.project_scoped)
|
||||
self.assertEqual(c.auth_user_id,
|
||||
'c4da488862bd435c9e6c0275a0d0e49a')
|
||||
self.assertEqual(c.auth_tenant_id,
|
||||
'225da22d3ce34b15877ea70b2a575f58')
|
||||
self.assertEqual('c4da488862bd435c9e6c0275a0d0e49a',
|
||||
c.get_user_id(session=None))
|
||||
self.assertEqual('225da22d3ce34b15877ea70b2a575f58',
|
||||
c.get_project_id(session=None))
|
||||
self.assertEqual(token.user_id, c.auth_user_id)
|
||||
self.assertEqual(token.project_id, c.auth_tenant_id)
|
||||
self.assertEqual(token.user_id, c.get_user_id(session=None))
|
||||
self.assertEqual(token.project_id, c.get_project_id(session=None))
|
||||
|
||||
def test_auth_ref_load(self):
|
||||
self.stub_auth(json=client_fixtures.project_scoped_token())
|
||||
token = client_fixtures.project_scoped_token()
|
||||
self.stub_auth(json=token)
|
||||
|
||||
c = client.Client(user_id='c4da488862bd435c9e6c0275a0d0e49a',
|
||||
c = client.Client(user_id=token.user_id,
|
||||
password='password',
|
||||
project_id='225da22d3ce34b15877ea70b2a575f58',
|
||||
project_id=token.project_id,
|
||||
auth_url=self.TEST_URL)
|
||||
cache = json.dumps(c.auth_ref)
|
||||
new_client = client.Client(auth_ref=json.loads(cache))
|
||||
self.assertIsNotNone(new_client.auth_ref)
|
||||
self.assertFalse(new_client.auth_ref.domain_scoped)
|
||||
self.assertTrue(new_client.auth_ref.project_scoped)
|
||||
self.assertEqual(new_client.username, 'exampleuser')
|
||||
self.assertEqual(token.user_name, new_client.username)
|
||||
self.assertIsNone(new_client.password)
|
||||
self.assertEqual(new_client.management_url,
|
||||
'http://admin:35357/v3')
|
||||
@@ -99,13 +95,22 @@ class KeystoneClientTest(utils.TestCase):
|
||||
def test_auth_ref_load_with_overridden_arguments(self):
|
||||
new_auth_url = 'https://newkeystone.com/v3'
|
||||
|
||||
self.stub_auth(json=client_fixtures.project_scoped_token())
|
||||
self.stub_auth(json=client_fixtures.project_scoped_token(),
|
||||
base_url=new_auth_url)
|
||||
user_id = uuid.uuid4().hex
|
||||
user_name = uuid.uuid4().hex
|
||||
project_id = uuid.uuid4().hex
|
||||
|
||||
c = client.Client(user_id='c4da488862bd435c9e6c0275a0d0e49a',
|
||||
first = client_fixtures.project_scoped_token(user_id=user_id,
|
||||
user_name=user_name,
|
||||
project_id=project_id)
|
||||
second = client_fixtures.project_scoped_token(user_id=user_id,
|
||||
user_name=user_name,
|
||||
project_id=project_id)
|
||||
self.stub_auth(json=first)
|
||||
self.stub_auth(json=second, base_url=new_auth_url)
|
||||
|
||||
c = client.Client(user_id=user_id,
|
||||
password='password',
|
||||
project_id='225da22d3ce34b15877ea70b2a575f58',
|
||||
project_id=project_id,
|
||||
auth_url=self.TEST_URL)
|
||||
cache = json.dumps(c.auth_ref)
|
||||
new_client = client.Client(auth_ref=json.loads(cache),
|
||||
@@ -113,28 +118,29 @@ class KeystoneClientTest(utils.TestCase):
|
||||
self.assertIsNotNone(new_client.auth_ref)
|
||||
self.assertFalse(new_client.auth_ref.domain_scoped)
|
||||
self.assertTrue(new_client.auth_ref.project_scoped)
|
||||
self.assertEqual(new_client.auth_url, new_auth_url)
|
||||
self.assertEqual(new_client.username, 'exampleuser')
|
||||
self.assertEqual(new_auth_url, new_client.auth_url)
|
||||
self.assertEqual(user_name, new_client.username)
|
||||
self.assertIsNone(new_client.password)
|
||||
self.assertEqual(new_client.management_url,
|
||||
'http://admin:35357/v3')
|
||||
|
||||
def test_trust_init(self):
|
||||
self.stub_auth(json=client_fixtures.trust_token())
|
||||
token = client_fixtures.trust_token()
|
||||
self.stub_auth(json=token)
|
||||
|
||||
c = client.Client(user_domain_name='exampledomain',
|
||||
username='exampleuser',
|
||||
c = client.Client(user_domain_name=token.user_domain_name,
|
||||
username=token.user_name,
|
||||
password='password',
|
||||
auth_url=self.TEST_URL,
|
||||
trust_id='fe0aef')
|
||||
trust_id=token.trust_id)
|
||||
self.assertIsNotNone(c.auth_ref)
|
||||
self.assertFalse(c.auth_ref.domain_scoped)
|
||||
self.assertFalse(c.auth_ref.project_scoped)
|
||||
self.assertEqual(c.auth_ref.trust_id, 'fe0aef')
|
||||
self.assertEqual(c.auth_ref.trustee_user_id, '0ca8f6')
|
||||
self.assertEqual(c.auth_ref.trustor_user_id, 'bd263c')
|
||||
self.assertEqual(token.trust_id, c.auth_ref.trust_id)
|
||||
self.assertEqual(token.trustee_user_id, c.auth_ref.trustee_user_id)
|
||||
self.assertEqual(token.trustor_user_id, c.auth_ref.trustor_user_id)
|
||||
self.assertTrue(c.auth_ref.trust_scoped)
|
||||
self.assertEqual(c.auth_user_id, '0ca8f6')
|
||||
self.assertEqual(token.user_id, c.auth_user_id)
|
||||
|
||||
def test_init_err_no_auth_url(self):
|
||||
self.assertRaises(exceptions.AuthorizationFailure,
|
||||
|
Reference in New Issue
Block a user