added more tests for records
[sfa.git] / tests / testRecord.py
1 import unittest
2 import xmlrpclib
3 from record import *
4 from cert import *
5 from gid import *
6 from config import *
7
8 class TestRecord(unittest.TestCase):
9     def setUp(self):
10         pass
11
12     def testCreate(self):
13         r = GeniRecord()
14
15 class TestTable(unittest.TestCase):
16
17     def setUp(self):
18         set_geni_table_prefix("testRecord$")
19         self.reg_hrn = "test.table"
20         self.rec_hrn = self.reg_hrn + "." + "record"
21         self.rec2_hrn = self.reg_hrn + "." + "record2"
22
23     def test000_Purge(self):
24         geni_records_purge(get_default_dbinfo())
25
26     def test001_Create(self):
27         t = GeniTable(hrn = self.reg_hrn, cninfo=get_default_dbinfo())
28         t.create()
29
30     def test002_Insert(self):
31         t = GeniTable(hrn = self.reg_hrn, cninfo=get_default_dbinfo())
32
33         k = Keypair(create=True)
34         gid = GID(subject=self.rec_hrn, uuid=create_uuid(), hrn=self.rec_hrn)
35         gid.set_pubkey(k)
36         gid.set_issuer(key=k, subject=self.rec_hrn)
37         gid.encode()
38         gid.sign()
39
40         r = GeniRecord(name=self.rec_hrn, gid=gid.save_to_string(), type="user", pointer=3)
41         t.insert(r)
42
43     def test003_Lookup(self):
44         t = GeniTable(hrn = self.reg_hrn, cninfo=get_default_dbinfo())
45
46         rec_list = t.resolve("*", self.rec_hrn)
47         self.assertEqual(len(rec_list), 1)
48         r = rec_list[0]
49         self.assertEqual(r.name, self.rec_hrn)
50         self.assertEqual(r.pointer, 3)
51
52     def test004_Update(self):
53         t = GeniTable(hrn = self.reg_hrn, cninfo=get_default_dbinfo())
54
55         rec_list = t.resolve("*", self.rec_hrn)
56         r = rec_list[0]
57
58         r.set_pointer(4)
59         t.update(r)
60
61         rec_list = t.resolve("*", self.rec_hrn)
62         self.assertEqual(len(rec_list), 1)
63         r = rec_list[0]
64         self.assertEqual(r.name, self.rec_hrn)
65         self.assertEqual(r.pointer, 4)
66
67     def test005_List(self):
68         t = GeniTable(hrn = self.reg_hrn, cninfo=get_default_dbinfo())
69
70         rec_list = t.list()
71         self.assertEqual(len(rec_list), 1)
72         r = rec_list[0]
73         self.assertEqual(r.name, self.rec_hrn)
74         self.assertEqual(r.pointer, 4)
75
76     def test006_Insert2(self):
77         t = GeniTable(hrn = self.reg_hrn, cninfo=get_default_dbinfo())
78
79         k = Keypair(create=True)
80         gid = GID(subject=self.rec2_hrn, uuid=create_uuid(), hrn=self.rec2_hrn)
81         gid.set_pubkey(k)
82         gid.set_issuer(key=k, subject=self.rec2_hrn)
83         gid.encode()
84         gid.sign()
85
86         r = GeniRecord(name=self.rec2_hrn, gid=gid.save_to_string(), type="user", pointer=222)
87         t.insert(r)
88
89     def test007_List2(self):
90         t = GeniTable(hrn = self.reg_hrn, cninfo=get_default_dbinfo())
91
92         rec_list = t.list()
93         self.assertEqual(len(rec_list), 2)
94
95         found1=False
96         found2=False
97
98         for r in rec_list:
99             if r.name == self.rec_hrn:
100                 found1=True
101                 self.assertEqual(r.pointer, 4)
102             elif r.name == self.rec2_hrn:
103                 found2=True
104                 self.assertEqual(r.pointer, 222)
105
106 if __name__ == "__main__":
107     unittest.main()