[pypy-svn] r8862 - in pypy/dist/pypy/module: . test
arigo at codespeak.net
arigo at codespeak.net
Fri Feb 4 13:43:52 CET 2005
Author: arigo
Date: Fri Feb 4 12:12:40 2005
New Revision: 8862
Modified:
pypy/dist/pypy/module/__builtin__module.py
pypy/dist/pypy/module/test/test_builtin.py
Log:
Patch from David Fraser.
Modified: pypy/dist/pypy/module/__builtin__module.py
==============================================================================
--- pypy/dist/pypy/module/__builtin__module.py (original)
+++ pypy/dist/pypy/module/__builtin__module.py Fri Feb 4 12:12:40 2005
@@ -577,8 +577,8 @@
def __get__(self, obj, klass=None):
if klass is None:
klass = type(obj)
- def newfunc(*args):
- return self.f(klass, *args)
+ def newfunc(*args, **kwargs):
+ return self.f(klass, *args, **kwargs)
return newfunc
if not hasattr(dict, 'fromkeys'):
Modified: pypy/dist/pypy/module/test/test_builtin.py
==============================================================================
--- pypy/dist/pypy/module/test/test_builtin.py (original)
+++ pypy/dist/pypy/module/test/test_builtin.py Fri Feb 4 12:12:40 2005
@@ -323,6 +323,30 @@
raises(TypeError, issubclass, int, 6)
raises(TypeError, issubclass, int, (float, 6))
+ def test_staticmethod(self):
+ class X:
+ def f(*args, **kwds): return args, kwds
+ f = staticmethod(f)
+ assert X.f() == ((), {})
+ assert X.f(42, x=43) == ((42,), {'x': 43})
+ assert X().f() == ((), {})
+ assert X().f(42, x=43) == ((42,), {'x': 43})
+
+ def test_classmethod(self):
+ class X:
+ def f(*args, **kwds): return args, kwds
+ f = classmethod(f)
+ class Y(X):
+ pass
+ assert X.f() == ((X,), {})
+ assert X.f(42, x=43) == ((X, 42), {'x': 43})
+ assert X().f() == ((X,), {})
+ assert X().f(42, x=43) == ((X, 42), {'x': 43})
+ assert Y.f() == ((Y,), {})
+ assert Y.f(42, x=43) == ((Y, 42), {'x': 43})
+ assert Y().f() == ((Y,), {})
+ assert Y().f(42, x=43) == ((Y, 42), {'x': 43})
+
class TestInternal:
More information about the Pypy-commit
mailing list