[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