[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