[pypy-commit] pypy stdlib-2.7.6: clean up pwd module changes

bdkearns noreply at buildbot.pypy.org
Sun Mar 2 17:09:54 CET 2014


Author: Brian Kearns <bdkearns at gmail.com>
Branch: stdlib-2.7.6
Changeset: r69618:beec1f9a3f9e
Date: 2014-03-02 11:08 -0500
http://bitbucket.org/pypy/pypy/changeset/beec1f9a3f9e/

Log:	clean up pwd module changes

diff --git a/pypy/module/pwd/interp_pwd.py b/pypy/module/pwd/interp_pwd.py
--- a/pypy/module/pwd/interp_pwd.py
+++ b/pypy/module/pwd/interp_pwd.py
@@ -5,22 +5,10 @@
 from pypy.interpreter.gateway import unwrap_spec
 from rpython.rlib.rarithmetic import intmask
 
-import sys
-
-
-if sys.maxint == 2147483647:
-    def check_uid_range(space, num):
-        pass
-else:
-    def check_uid_range(space, num):
-        if num < -(1<<31) or num >= (1<<32):
-            msg = "getpwuid(): uid not found"
-            raise OperationError(space.w_KeyError, space.wrap(msg))
-
 
 eci = ExternalCompilationInfo(
     includes=['pwd.h']
-    )
+)
 
 class CConfig:
     _compilation_info_ = eci
@@ -77,15 +65,14 @@
         uid = space.int_w(w_uid)
     except OperationError, e:
         if e.match(space, space.w_OverflowError):
-            msg = "getpwuid(): uid not found"
-            raise OperationError(space.w_KeyError, space.wrap(msg))
+            raise oefmt(space.w_KeyError, "getpwuid(): uid not found")
         raise
-    check_uid_range(space, uid)
     pw = c_getpwuid(uid)
     if not pw:
         raise oefmt(space.w_KeyError, "getpwuid(): uid not found: %d", uid)
     return make_struct_passwd(space, pw)
 
+
 @unwrap_spec(name=str)
 def getpwnam(space, name):
     """
@@ -99,6 +86,7 @@
         raise oefmt(space.w_KeyError, "getpwnam(): name not found: %s", name)
     return make_struct_passwd(space, pw)
 
+
 def getpwall(space):
     users_w = []
     c_setpwent()
diff --git a/pypy/module/pwd/test/test_pwd.py b/pypy/module/pwd/test/test_pwd.py
--- a/pypy/module/pwd/test/test_pwd.py
+++ b/pypy/module/pwd/test/test_pwd.py
@@ -23,16 +23,21 @@
         assert type(pw.pw_uid) is int
         assert type(pw.pw_gid) is int
         # should be out of uid_t range
+        raises(TypeError, pwd.getpwuid)
+        raises(TypeError, pwd.getpwuid, 3.14)
+        raises(KeyError, pwd.getpwuid, sys.maxint)
+        raises(KeyError, pwd.getpwuid, -1)
         raises(KeyError, pwd.getpwuid, 2**128)
         raises(KeyError, pwd.getpwuid, -2**128)
-        raises(KeyError, pwd.getpwuid, (1<<32))
-        raises(KeyError, pwd.getpwuid, -(1<<32))
 
     def test_getpwnam(self):
         import pwd
+        raises(TypeError, pwd.getpwnam)
+        raises(TypeError, pwd.getpwnam, 42)
         raises(KeyError, pwd.getpwnam, '~invalid~')
         assert pwd.getpwnam('root').pw_name == 'root'
 
     def test_getpwall(self):
         import pwd
+        raises(TypeError, pwd.getpwall, 42)
         assert pwd.getpwnam('root') in pwd.getpwall()


More information about the pypy-commit mailing list