fewer import * for certificate
[sfa.git] / tests / testCred.py
1 import unittest
2 from geni.trust.credential import *
3 from geni.trust.rights import *
4 from geni.trust.gid import *
5
6 class TestCred(unittest.TestCase):
7    def setUp(self):
8       pass
9
10    def testCreate(self):
11       cred = Credential(create=True)
12
13    def testDefaults(self):
14       cred = Credential(subject="testCredential")
15
16       self.assertEqual(cred.get_gid_caller(), None)
17       self.assertEqual(cred.get_gid_object(), None)
18
19    def testLoadSave(self):
20       cred = Credential(subject="testCredential")
21
22       gidCaller = GID(subject="caller", uuid=create_uuid(), hrn="foo.caller")
23       gidObject = GID(subject="object", uuid=create_uuid(), hrn="foo.object")
24       lifeTime = 12345
25       delegate = True
26       rights = "embed,bind"
27
28       cred.set_gid_caller(gidCaller)
29       self.assertEqual(cred.get_gid_caller().get_subject(), gidCaller.get_subject())
30
31       cred.set_gid_object(gidObject)
32       self.assertEqual(cred.get_gid_object().get_subject(), gidObject.get_subject())
33
34       cred.set_lifetime(lifeTime)
35       self.assertEqual(cred.get_lifetime(), lifeTime)
36
37       cred.set_delegate(delegate)
38       self.assertEqual(cred.get_delegate(), delegate)
39
40       cred.set_privileges(rights)
41       self.assertEqual(cred.get_privileges().save_to_string(), rights)
42
43       cred.encode()
44
45       cred_str = cred.save_to_string()
46
47       # re-load the credential from a string and make sure it's fields are
48       # intact
49       cred2 = Credential(string = cred_str)
50       self.assertEqual(cred2.get_gid_caller().get_subject(), gidCaller.get_subject())
51       self.assertEqual(cred2.get_gid_object().get_subject(), gidObject.get_subject())
52       self.assertEqual(cred2.get_lifetime(), lifeTime)
53       self.assertEqual(cred2.get_delegate(), delegate)
54       self.assertEqual(cred2.get_privileges().save_to_string(), rights)
55
56 if __name__ == "__main__":
57     unittest.main()