[pypy-svn] r60927 - in pypy/trunk/pypy/module/_random: . test
cfbolz at codespeak.net
cfbolz at codespeak.net
Tue Jan 13 17:33:27 CET 2009
Author: cfbolz
Date: Tue Jan 13 17:33:26 2009
New Revision: 60927
Modified:
pypy/trunk/pypy/module/_random/interp_random.py
pypy/trunk/pypy/module/_random/test/test_random.py
Log:
fix a test
Modified: pypy/trunk/pypy/module/_random/interp_random.py
==============================================================================
--- pypy/trunk/pypy/module/_random/interp_random.py (original)
+++ pypy/trunk/pypy/module/_random/interp_random.py Tue Jan 13 17:33:26 2009
@@ -1,13 +1,15 @@
from pypy.interpreter.error import OperationError
from pypy.interpreter.typedef import TypeDef
from pypy.interpreter.gateway import ObjSpace, W_Root, NoneNotWrapped, interp2app
+from pypy.interpreter.gateway import Arguments
from pypy.interpreter.baseobjspace import Wrappable
from pypy.rlib.rarithmetic import r_uint, intmask
from pypy.rlib import rrandom
import time
-def descr_new__(space, w_subtype, w_anything=None):
+def descr_new__(space, w_subtype, args):
+ w_anything = args.firstarg()
x = space.allocate_instance(W_Random, w_subtype)
x = space.interp_w(W_Random, x)
W_Random.__init__(x, space, w_anything)
@@ -23,7 +25,7 @@
return space.newfloat(self._rnd.random())
random.unwrap_spec = ['self', ObjSpace]
- def seed(self, space, w_n=None):
+ def seed(self, space, w_n=NoneNotWrapped):
if w_n is None:
w_n = space.newint(int(time.time()))
else:
@@ -111,7 +113,7 @@
W_Random.typedef = TypeDef("Random",
- __new__ = interp2app(descr_new__),
+ __new__ = interp2app(descr_new__, unwrap_spec=[ObjSpace, W_Root, Arguments]),
random = interp2app(W_Random.random),
seed = interp2app(W_Random.seed),
getstate = interp2app(W_Random.getstate),
Modified: pypy/trunk/pypy/module/_random/test/test_random.py
==============================================================================
--- pypy/trunk/pypy/module/_random/test/test_random.py (original)
+++ pypy/trunk/pypy/module/_random/test/test_random.py Tue Jan 13 17:33:26 2009
@@ -79,3 +79,11 @@
for n in range(1, 10) + range(10, 1000, 15):
k = rnd.getrandbits(n)
assert 0 <= k < 2 ** n
+
+ def test_subclass(self):
+ import _random
+ class R(_random.Random):
+ def __init__(self, x=1):
+ self.x = x
+ r = R(x=15)
+ assert r.x == 15
More information about the Pypy-commit
mailing list