68
68
self.assertDictEqual(tenant_ref, self.tenant_bar)
69
69
self.assertDictEqual(metadata_ref, self.metadata_foobar)
71
def test_authenticate_role_return(self):
72
self.identity_api.add_role_to_user_and_tenant(
73
self.user_foo['id'], self.tenant_bar['id'], 'keystone_admin')
74
user_ref, tenant_ref, metadata_ref = self.identity_api.authenticate(
75
user_id=self.user_foo['id'],
76
tenant_id=self.tenant_bar['id'],
77
password=self.user_foo['password'])
78
self.assertIn('roles', metadata_ref)
79
self.assertIn('keystone_admin', metadata_ref['roles'])
71
81
def test_authenticate_no_metadata(self):
72
82
user = self.user_no_meta
73
83
tenant = self.tenant_baz
602
612
class TokenTests(object):
603
613
def test_token_crud(self):
604
614
token_id = uuid.uuid4().hex
605
data = {'id': token_id, 'id_hash': token_id, 'a': 'b'}
615
data = {'id': token_id, 'a': 'b',
616
'user': {'id': 'testuserid'}}
606
617
data_ref = self.token_api.create_token(token_id, data)
607
618
expires = data_ref.pop('expires')
608
619
self.assertTrue(isinstance(expires, datetime.datetime))
619
630
self.assertRaises(exception.TokenNotFound,
620
631
self.token_api.delete_token, token_id)
633
def create_token_sample_data(self):
634
token_id = uuid.uuid4().hex
635
data = {'id': token_id, 'a': 'b',
636
'user': {'id': 'testuserid'}}
637
self.token_api.create_token(token_id, data)
640
def test_token_list(self):
641
tokens = self.token_api.list_tokens('testuserid')
642
self.assertEquals(len(tokens), 0)
643
token_id1 = self.create_token_sample_data()
644
tokens = self.token_api.list_tokens('testuserid')
645
self.assertEquals(len(tokens), 1)
646
self.assertIn(token_id1, tokens)
647
token_id2 = self.create_token_sample_data()
648
tokens = self.token_api.list_tokens('testuserid')
649
self.assertEquals(len(tokens), 2)
650
self.assertIn(token_id2, tokens)
651
self.assertIn(token_id1, tokens)
652
self.token_api.delete_token(token_id1)
653
tokens = self.token_api.list_tokens('testuserid')
654
self.assertIn(token_id2, tokens)
655
self.assertNotIn(token_id1, tokens)
656
self.token_api.delete_token(token_id2)
657
tokens = self.token_api.list_tokens('testuserid')
658
self.assertNotIn(token_id2, tokens)
659
self.assertNotIn(token_id1, tokens)
622
661
def test_get_token_404(self):
623
662
self.assertRaises(exception.TokenNotFound,
624
663
self.token_api.get_token,
633
672
token_id = uuid.uuid4().hex
634
673
expire_time = timeutils.utcnow() - datetime.timedelta(minutes=1)
635
674
data = {'id_hash': token_id, 'id': token_id, 'a': 'b',
636
'expires': expire_time}
675
'expires': expire_time,
676
'user': {'id': 'testuserid'}}
637
677
data_ref = self.token_api.create_token(token_id, data)
638
678
self.assertDictEqual(data_ref, data)
639
679
self.assertRaises(exception.TokenNotFound,
642
682
def test_null_expires_token(self):
643
683
token_id = uuid.uuid4().hex
644
data = {'id': token_id, 'id_hash': token_id, 'a': 'b', 'expires': None}
684
data = {'id': token_id, 'id_hash': token_id, 'a': 'b', 'expires': None,
685
'user': {'id': 'testuserid'}}
645
686
data_ref = self.token_api.create_token(token_id, data)
646
687
self.assertDictEqual(data_ref, data)
647
688
new_data_ref = self.token_api.get_token(token_id)
648
689
self.assertEqual(data_ref, new_data_ref)
691
def check_list_revoked_tokens(self, token_ids):
692
revoked_ids = [x['id'] for x in self.token_api.list_revoked_tokens()]
693
for token_id in token_ids:
694
self.assertIn(token_id, revoked_ids)
696
def delete_token(self):
697
token_id = uuid.uuid4().hex
698
data = {'id_hash': token_id, 'id': token_id, 'a': 'b',
699
'user': {'id': 'testuserid'}}
700
data_ref = self.token_api.create_token(token_id, data)
701
self.token_api.delete_token(token_id)
703
exception.TokenNotFound,
704
self.token_api.get_token,
707
exception.TokenNotFound,
708
self.token_api.delete_token,
712
def test_list_revoked_tokens_returns_empty_list(self):
713
revoked_ids = [x['id'] for x in self.token_api.list_revoked_tokens()]
714
self.assertEqual(revoked_ids, [])
716
def test_list_revoked_tokens_for_single_token(self):
717
self.check_list_revoked_tokens([self.delete_token()])
719
def test_list_revoked_tokens_for_multiple_tokens(self):
720
self.check_list_revoked_tokens([self.delete_token()
651
724
class CatalogTests(object):
652
725
def test_service_crud(self):