"""Test script for the grp module."""
from test
import test_support
class GroupDatabaseTestCase(unittest
.TestCase
):
def check_value(self
, value
):
# check that a grp tuple has the entries and
# attributes promised by the docs
self
.assertEqual(len(value
), 4)
self
.assertEqual(value
[0], value
.gr_name
)
self
.assert_(isinstance(value
.gr_name
, basestring
))
self
.assertEqual(value
[1], value
.gr_passwd
)
self
.assert_(isinstance(value
.gr_passwd
, basestring
))
self
.assertEqual(value
[2], value
.gr_gid
)
self
.assert_(isinstance(value
.gr_gid
, int))
self
.assertEqual(value
[3], value
.gr_mem
)
self
.assert_(isinstance(value
.gr_mem
, list))
e2
= grp
.getgrgid(e
.gr_gid
)
self
.assertEqual(e2
.gr_gid
, e
.gr_gid
)
e2
= grp
.getgrnam(e
.gr_name
)
self
.assertEqual(e2
.gr_name
, e
.gr_name
)
self
.assertRaises(TypeError, grp
.getgrgid
)
self
.assertRaises(TypeError, grp
.getgrnam
)
self
.assertRaises(TypeError, grp
.getgrall
, 42)
for (n
, p
, g
, mem
) in grp
.getgrall():
allnames
= bynames
.keys()
fakename
= allnames
[namei
]
while fakename
in bynames
:
chars
= map(None, fakename
)
for i
in xrange(len(chars
)):
chars
[i
] = chr(ord(chars
[i
]) + 1)
fakename
= allnames
[namei
]
# should never happen... if so, just forget it
fakename
= ''.join(map(None, chars
))
self
.assertRaises(KeyError, grp
.getgrnam
, fakename
)
# Choose a non-existent gid.
fakegid
= (fakegid
* 3) % 0x10000
self
.assertRaises(KeyError, grp
.getgrgid
, fakegid
)
test_support
.run_unittest(GroupDatabaseTestCase
)
if __name__
== "__main__":