[pypy-svn] r10837 - in pypy/dist/pypy: module/test objspace/std objspace/std/test
arigo at codespeak.net
arigo at codespeak.net
Mon Apr 18 23:34:39 CEST 2005
Author: arigo
Date: Mon Apr 18 23:34:39 2005
New Revision: 10837
Modified:
pypy/dist/pypy/module/test/test_vars.py
pypy/dist/pypy/objspace/std/dictproxytype.py
pypy/dist/pypy/objspace/std/test/test_dictproxy.py
Log:
Fixed dictproxy comparison. Re-enabled old test_vars.
Modified: pypy/dist/pypy/module/test/test_vars.py
==============================================================================
--- pypy/dist/pypy/module/test/test_vars.py (original)
+++ pypy/dist/pypy/module/test/test_vars.py Mon Apr 18 23:34:39 2005
@@ -2,13 +2,13 @@
class AppTestVars:
- def _test_vars_no_arguments(self):
+ def test_vars_no_arguments(self):
assert vars() == locals()
- def _test_vars_too_many_arguments(self):
+ def test_vars_too_many_arguments(self):
raises(TypeError, vars, 0, 1)
- def _test_vars_correct_arguments(self):
+ def test_vars_correct_arguments(self):
class a:
def __init__(self):
self.res = 42
Modified: pypy/dist/pypy/objspace/std/dictproxytype.py
==============================================================================
--- pypy/dist/pypy/objspace/std/dictproxytype.py (original)
+++ pypy/dist/pypy/objspace/std/dictproxytype.py Mon Apr 18 23:34:39 2005
@@ -13,6 +13,15 @@
return space.getattr(w_obj.w_dict, space.wrap(name))
return GetSetProperty(fget)
+def _compareproxymethod(opname):
+ def compare(space, w_obj1, w_obj2):
+ from pypy.objspace.std.dictproxyobject import W_DictProxyObject
+ if not isinstance(w_obj1, W_DictProxyObject):
+ raise OperationError(space.w_TypeError,
+ space.wrap("expected dictproxy"))
+ return getattr(space, opname)(w_obj1.w_dict, w_obj2)
+ return gateway.interp2app(compare)
+
# ____________________________________________________________
dictproxy_typedef = StdTypeDef("dictproxy",
@@ -32,11 +41,11 @@
__iter__ = _proxymethod('__iter__'),
#__cmp__ = _proxymethod('__cmp__'),
# you cannot have it here if it is not in dict
- __lt__ = _proxymethod('__lt__'),
- __le__ = _proxymethod('__le__'),
- __eq__ = _proxymethod('__eq__'),
- __ne__ = _proxymethod('__ne__'),
- __gt__ = _proxymethod('__gt__'),
- __ge__ = _proxymethod('__ge__'),
+ __lt__ = _compareproxymethod('lt'),
+ __le__ = _compareproxymethod('le'),
+ __eq__ = _compareproxymethod('eq'),
+ __ne__ = _compareproxymethod('ne'),
+ __gt__ = _compareproxymethod('gt'),
+ __ge__ = _compareproxymethod('ge'),
)
dictproxy_typedef.registermethods(globals())
Modified: pypy/dist/pypy/objspace/std/test/test_dictproxy.py
==============================================================================
--- pypy/dist/pypy/objspace/std/test/test_dictproxy.py (original)
+++ pypy/dist/pypy/objspace/std/test/test_dictproxy.py Mon Apr 18 23:34:39 2005
@@ -18,3 +18,16 @@
pass
else:
raise AssertionError, 'this should not have been writable'
+
+ def test_dictproxyeq(self):
+ class a(object):
+ pass
+ class b(object):
+ stuff = 42
+ class c(object):
+ stuff = 42
+ assert a.__dict__ == a.__dict__
+ assert a.__dict__ != b.__dict__
+ assert a.__dict__ != {'123': '456'}
+ assert {'123': '456'} != a.__dict__
+ assert b.__dict__ == c.__dict__
More information about the Pypy-commit
mailing list