[pypy-commit] pypy type-specialized-instances: fixed mapdict tests
l.diekmann
noreply at buildbot.pypy.org
Mon Dec 5 12:33:11 CET 2011
Author: Lukas Diekmann <lukas.diekmann at uni-duesseldorf.de>
Branch: type-specialized-instances
Changeset: r50169:591a337d364f
Date: 2011-12-05 12:32 +0100
http://bitbucket.org/pypy/pypy/changeset/591a337d364f/
Log: fixed mapdict tests
diff --git a/pypy/objspace/std/test/test_mapdict.py b/pypy/objspace/std/test/test_mapdict.py
--- a/pypy/objspace/std/test/test_mapdict.py
+++ b/pypy/objspace/std/test/test_mapdict.py
@@ -25,17 +25,17 @@
class typedef:
hasdict = False
-def erase_storage_items(items):
- return [IntAttribute.erase_item(item) for item in items]
+def erase_storage_items(items, eraser=PlainAttribute):
+ return [eraser.erase_item(item) for item in items]
-def unerase_storage_items(storage, uneraser=IntAttribute):
+def unerase_storage_items(storage, uneraser=PlainAttribute):
return [uneraser.unerase_item(item) for item in storage]
def test_plain_attribute():
w_cls = "class"
- aa = IntAttribute(("b", DICT),
- IntAttribute(("a", DICT),
+ aa = PlainAttribute(("b", DICT),
+ PlainAttribute(("a", DICT),
Terminator(space, w_cls)))
assert aa.space is space
assert aa.terminator.w_cls is w_cls
@@ -81,7 +81,8 @@
def test_add_attribute():
cls = Class()
obj = cls.instantiate()
- obj.setdictvalue(space, "a", 10)
+ obj.setdictvalue(space, "a", space.wrap(10))
+ print obj.map
assert unerase_storage_items(obj.storage) == [10]
assert obj.getdictvalue(space, "a") == 10
assert obj.getdictvalue(space, "b") is None
@@ -159,9 +160,7 @@
assert obj.getdictvalue(space, "a") == 50
assert obj.getdictvalue(space, "b") == 60
assert obj.getdictvalue(space, "c") == 70
- #assert unerase_storage_items(obj.storage) == [50, 60, 70, lifeline1]
- assert unerase_storage_items(obj.storage[:-1], IntAttribute) == [50, 60, 70]
- assert unerase_storage_items(obj.storage[-1:], PlainAttribute) == [lifeline1]
+ assert unerase_storage_items(obj.storage) == [50, 60, 70, lifeline1]
assert obj.getweakref() is lifeline1
obj2 = c.instantiate()
@@ -169,9 +168,7 @@
obj2.setdictvalue(space, "b", 160)
obj2.setdictvalue(space, "c", 170)
obj2.setweakref(space, lifeline2)
- #assert unerase_storage_items(obj2.storage) == [150, 160, 170, lifeline2]
- assert unerase_storage_items(obj2.storage[:-1], IntAttribute) == [150, 160, 170]
- assert unerase_storage_items(obj2.storage[-1:], PlainAttribute) == [lifeline2]
+ assert unerase_storage_items(obj2.storage) == [150, 160, 170, lifeline2]
assert obj2.getweakref() is lifeline2
assert obj2.map is obj.map
@@ -282,9 +279,7 @@
assert flag
materialize_r_dict(space, obj, d)
assert d == {"a": 5, "b": 6, "c": 7}
- #assert unerase_storage_items(obj.storage) == [50, 60, 70, w_d]
- assert unerase_storage_items(obj.storage[:-1], IntAttribute) == [50, 60, 70]
- assert unerase_storage_items(obj.storage[-1:], PlainAttribute) == [w_d]
+ assert unerase_storage_items(obj.storage) == [50, 60, 70, w_d]
def test_size_prediction():
@@ -766,12 +761,21 @@
def test_delete_slot(self):
class A(object):
__slots__ = ['x']
-
+
a = A()
a.x = 42
del a.x
raises(AttributeError, "a.x")
+ def test_subclassed_int(self):
+ class Integer(int):
+ pass
+
+ a = Integer()
+ a.x = 5
+
+ assert a.x == 5
+
class AppTestWithMapDictAndCounters(object):
def setup_class(cls):
from pypy.interpreter import gateway
More information about the pypy-commit
mailing list