~gandelman-a/ubuntu/precise/keystone/UCA_2012.2.1

« back to all changes in this revision

Viewing changes to tests/test_backend.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short, Adam Gandelman, Soren Hansen, Logan Rosen, Chuck Short
  • Date: 2012-09-07 13:04:01 UTC
  • mfrom: (1.1.22)
  • Revision ID: package-import@ubuntu.com-20120907130401-o49wh9xxkr2cmuqx
Tags: 2012.2~rc1~20120906.2517-0ubuntu2
[ Adam Gandelman ]
* Refreshed patches.

[ Soren Hansen ]
* Update debian/watch to account for symbolically named tarballs and
  use newer URL.
* Fix Launchpad URLs in debian/watch.

[ Logan Rosen ]
* Fix control file to suggest python-memcache instead of python-memcached
  (LP: #998991).

[ Chuck Short ]
* New upstream version.
* Dont FTBFS if the testsuite fails.

Show diffs side-by-side

added added

removed removed

Lines of Context:
68
68
        self.assertDictEqual(tenant_ref, self.tenant_bar)
69
69
        self.assertDictEqual(metadata_ref, self.metadata_foobar)
70
70
 
 
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'])
 
80
 
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)
621
632
 
 
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)
 
638
        return token_id
 
639
 
 
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)
 
660
 
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,
641
681
 
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)
649
690
 
 
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)
 
695
 
 
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)
 
702
        self.assertRaises(
 
703
            exception.TokenNotFound,
 
704
            self.token_api.get_token,
 
705
            data_ref['id'])
 
706
        self.assertRaises(
 
707
            exception.TokenNotFound,
 
708
            self.token_api.delete_token,
 
709
            data_ref['id'])
 
710
        return token_id
 
711
 
 
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, [])
 
715
 
 
716
    def test_list_revoked_tokens_for_single_token(self):
 
717
        self.check_list_revoked_tokens([self.delete_token()])
 
718
 
 
719
    def test_list_revoked_tokens_for_multiple_tokens(self):
 
720
        self.check_list_revoked_tokens([self.delete_token()
 
721
                                        for x in xrange(2)])
 
722
 
650
723
 
651
724
class CatalogTests(object):
652
725
    def test_service_crud(self):