bpo-26856: Skip test_pwd on Android until issue 32033 is fixed (GH-4561)

This commit is contained in:
xdegaye 2017-11-25 17:32:27 +01:00 committed by GitHub
parent 77f5139954
commit 76fdac4c9f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 20 deletions

View File

@ -4,19 +4,11 @@ from test import support
pwd = support.import_module('pwd')
def _getpwall():
# Android does not have getpwall.
if hasattr(pwd, 'getpwall'):
return pwd.getpwall()
elif hasattr(pwd, 'getpwuid'):
return [pwd.getpwuid(0)]
else:
return []
@unittest.skipUnless(hasattr(pwd, 'getpwall'), 'Does not have getpwall()')
class PwdTest(unittest.TestCase):
def test_values(self):
entries = _getpwall()
entries = pwd.getpwall()
for e in entries:
self.assertEqual(len(e), 7)
@ -42,7 +34,7 @@ class PwdTest(unittest.TestCase):
# and check afterwards (done in test_values_extended)
def test_values_extended(self):
entries = _getpwall()
entries = pwd.getpwall()
entriesbyname = {}
entriesbyuid = {}
@ -66,13 +58,12 @@ class PwdTest(unittest.TestCase):
self.assertRaises(TypeError, pwd.getpwuid, 3.14)
self.assertRaises(TypeError, pwd.getpwnam)
self.assertRaises(TypeError, pwd.getpwnam, 42)
if hasattr(pwd, 'getpwall'):
self.assertRaises(TypeError, pwd.getpwall, 42)
# try to get some errors
bynames = {}
byuids = {}
for (n, p, u, g, gecos, d, s) in _getpwall():
for (n, p, u, g, gecos, d, s) in pwd.getpwall():
bynames[n] = u
byuids[u] = n
@ -106,16 +97,12 @@ class PwdTest(unittest.TestCase):
# loop, say), pwd.getpwuid() might still be able to find data for that
# uid. Using sys.maxint may provoke the same problems, but hopefully
# it will be a more repeatable failure.
# Android accepts a very large span of uids including sys.maxsize and
# -1; it raises KeyError with 1 or 2 for example.
fakeuid = sys.maxsize
self.assertNotIn(fakeuid, byuids)
if not support.is_android:
self.assertRaises(KeyError, pwd.getpwuid, fakeuid)
# -1 shouldn't be a valid uid because it has a special meaning in many
# uid-related functions
if not support.is_android:
self.assertRaises(KeyError, pwd.getpwuid, -1)
# should be out of uid_t range
self.assertRaises(KeyError, pwd.getpwuid, 2**128)