Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v9 / lib / python2.4 / test / test_grp.py
CommitLineData
920dae64
AT
1"""Test script for the grp module."""
2
3import grp
4import unittest
5from test import test_support
6
7class GroupDatabaseTestCase(unittest.TestCase):
8
9 def check_value(self, value):
10 # check that a grp tuple has the entries and
11 # attributes promised by the docs
12 self.assertEqual(len(value), 4)
13 self.assertEqual(value[0], value.gr_name)
14 self.assert_(isinstance(value.gr_name, basestring))
15 self.assertEqual(value[1], value.gr_passwd)
16 self.assert_(isinstance(value.gr_passwd, basestring))
17 self.assertEqual(value[2], value.gr_gid)
18 self.assert_(isinstance(value.gr_gid, int))
19 self.assertEqual(value[3], value.gr_mem)
20 self.assert_(isinstance(value.gr_mem, list))
21
22 def test_values(self):
23 entries = grp.getgrall()
24
25 for e in entries:
26 self.check_value(e)
27
28 for e in entries:
29 e2 = grp.getgrgid(e.gr_gid)
30 self.check_value(e2)
31 self.assertEqual(e2.gr_gid, e.gr_gid)
32 e2 = grp.getgrnam(e.gr_name)
33 self.check_value(e2)
34 self.assertEqual(e2.gr_name, e.gr_name)
35
36 def test_errors(self):
37 self.assertRaises(TypeError, grp.getgrgid)
38 self.assertRaises(TypeError, grp.getgrnam)
39 self.assertRaises(TypeError, grp.getgrall, 42)
40
41 # try to get some errors
42 bynames = {}
43 bygids = {}
44 for (n, p, g, mem) in grp.getgrall():
45 bynames[n] = g
46 bygids[g] = n
47
48 allnames = bynames.keys()
49 namei = 0
50 fakename = allnames[namei]
51 while fakename in bynames:
52 chars = map(None, fakename)
53 for i in xrange(len(chars)):
54 if chars[i] == 'z':
55 chars[i] = 'A'
56 break
57 elif chars[i] == 'Z':
58 continue
59 else:
60 chars[i] = chr(ord(chars[i]) + 1)
61 break
62 else:
63 namei = namei + 1
64 try:
65 fakename = allnames[namei]
66 except IndexError:
67 # should never happen... if so, just forget it
68 break
69 fakename = ''.join(map(None, chars))
70
71 self.assertRaises(KeyError, grp.getgrnam, fakename)
72
73 # Choose a non-existent gid.
74 fakegid = 4127
75 while fakegid in bygids:
76 fakegid = (fakegid * 3) % 0x10000
77
78 self.assertRaises(KeyError, grp.getgrgid, fakegid)
79
80def test_main():
81 test_support.run_unittest(GroupDatabaseTestCase)
82
83if __name__ == "__main__":
84 test_main()