From 4710c53dcad1ebf3755f3efb9e80ac24bd72a9b2 Mon Sep 17 00:00:00 2001 From: darylm503 Date: Mon, 16 Apr 2012 22:12:42 +0000 Subject: AppPkg/Applications/Python: Add Python 2.7.2 sources since the release of Python 2.7.3 made them unavailable from the python.org web site. These files are a subset of the python-2.7.2.tgz distribution from python.org. Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution. Signed-off-by: daryl.mcdaniel@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Python/Python-2.7.2/Lib/test/test_grp.py | 97 ++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 AppPkg/Applications/Python/Python-2.7.2/Lib/test/test_grp.py (limited to 'AppPkg/Applications/Python/Python-2.7.2/Lib/test/test_grp.py') diff --git a/AppPkg/Applications/Python/Python-2.7.2/Lib/test/test_grp.py b/AppPkg/Applications/Python/Python-2.7.2/Lib/test/test_grp.py new file mode 100644 index 0000000000..f1fa861f25 --- /dev/null +++ b/AppPkg/Applications/Python/Python-2.7.2/Lib/test/test_grp.py @@ -0,0 +1,97 @@ +"""Test script for the grp module.""" + +import unittest +from test import test_support + +grp = test_support.import_module('grp') + +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.assertIsInstance(value.gr_name, basestring) + self.assertEqual(value[1], value.gr_passwd) + self.assertIsInstance(value.gr_passwd, basestring) + self.assertEqual(value[2], value.gr_gid) + self.assertIsInstance(value.gr_gid, int) + self.assertEqual(value[3], value.gr_mem) + self.assertIsInstance(value.gr_mem, list) + + def test_values(self): + entries = grp.getgrall() + + for e in entries: + self.check_value(e) + + if len(entries) > 1000: # Huge group file (NIS?) -- skip the rest + return + + for e in entries: + e2 = grp.getgrgid(e.gr_gid) + self.check_value(e2) + self.assertEqual(e2.gr_gid, e.gr_gid) + name = e.gr_name + if name.startswith('+') or name.startswith('-'): + # NIS-related entry + continue + e2 = grp.getgrnam(name) + self.check_value(e2) + # There are instances where getgrall() returns group names in + # lowercase while getgrgid() returns proper casing. + # Discovered on Ubuntu 5.04 (custom). + self.assertEqual(e2.gr_name.lower(), name.lower()) + + def test_errors(self): + self.assertRaises(TypeError, grp.getgrgid) + self.assertRaises(TypeError, grp.getgrnam) + self.assertRaises(TypeError, grp.getgrall, 42) + + # try to get some errors + bynames = {} + bygids = {} + for (n, p, g, mem) in grp.getgrall(): + if not n or n == '+': + continue # skip NIS entries etc. + bynames[n] = g + bygids[g] = n + + allnames = bynames.keys() + namei = 0 + fakename = allnames[namei] + while fakename in bynames: + chars = list(fakename) + for i in xrange(len(chars)): + if chars[i] == 'z': + chars[i] = 'A' + break + elif chars[i] == 'Z': + continue + else: + chars[i] = chr(ord(chars[i]) + 1) + break + else: + namei = namei + 1 + try: + fakename = allnames[namei] + except IndexError: + # should never happen... if so, just forget it + break + fakename = ''.join(chars) + + self.assertRaises(KeyError, grp.getgrnam, fakename) + + # Choose a non-existent gid. + fakegid = 4127 + while fakegid in bygids: + fakegid = (fakegid * 3) % 0x10000 + + self.assertRaises(KeyError, grp.getgrgid, fakegid) + +def test_main(): + test_support.run_unittest(GroupDatabaseTestCase) + +if __name__ == "__main__": + test_main() -- cgit v1.2.3