added hierarchy tests
[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
22     def test000_Purge(self):
23         geni_records_purge(get_default_dbinfo())
24
25     def test001_Create(self):
26         t = GeniTable(hrn = self.reg_hrn, cninfo=get_default_dbinfo())
27         t.create()
28
29     def test002_Insert(self):
30         t = GeniTable(hrn = self.reg_hrn, cninfo=get_default_dbinfo())
31
32         k = Keypair(create=True)
33         gid = GID(subject="scott.foo", uuid=create_uuid(), hrn=self.rec_hrn)
34         gid.set_pubkey(k)
35         gid.set_issuer(key=k, subject=self.rec_hrn)
36         gid.encode()
37         gid.sign()
38
39         r = GeniRecord(name=self.rec_hrn, gid=gid.save_to_string(), type="user", pointer=3)
40         t.insert(r)
41
42     def test003_Lookup(self):
43         t = GeniTable(hrn = self.reg_hrn, cninfo=get_default_dbinfo())
44
45         rec_list = t.resolve("*", self.rec_hrn)
46         self.assertEqual(len(rec_list), 1)
47         r = rec_list[0]
48         self.assertEqual(r.name, self.rec_hrn)
49         self.assertEqual(r.pointer, 3)
50
51     def test004_Update(self):
52         t = GeniTable(hrn = self.reg_hrn, cninfo=get_default_dbinfo())
53
54         rec_list = t.resolve("*", self.rec_hrn)
55         r = rec_list[0]
56
57         r.set_pointer(4)
58         t.update(r)
59
60         rec_list = t.resolve("*", self.rec_hrn)
61         self.assertEqual(len(rec_list), 1)
62         r = rec_list[0]
63         self.assertEqual(r.name, self.rec_hrn)
64         self.assertEqual(r.pointer, 4)
65
66 if __name__ == "__main__":
67     unittest.main()