[pypy-commit] pypy list-strategies: skip tests under certain circumstances

cfbolz noreply at buildbot.pypy.org
Fri Sep 30 11:35:46 CEST 2011


Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch: list-strategies
Changeset: r47701:9d84a22aa5fe
Date: 2011-09-30 11:35 +0200
http://bitbucket.org/pypy/pypy/changeset/9d84a22aa5fe/

Log:	skip tests under certain circumstances

diff --git a/pypy/objspace/std/test/test_obj.py b/pypy/objspace/std/test/test_obj.py
--- a/pypy/objspace/std/test/test_obj.py
+++ b/pypy/objspace/std/test/test_obj.py
@@ -6,12 +6,15 @@
     def setup_class(cls):
         from pypy.interpreter import gateway
         import sys
+
         cpython_behavior = (not option.runappdirect
                             or not hasattr(sys, 'pypy_translation_info'))
 
-        cls.w_cpython_behavior = cls.space.wrap(cpython_behavior)
-        cls.w_cpython_version = cls.space.wrap(tuple(sys.version_info))
         space = cls.space
+        cls.w_cpython_behavior = space.wrap(cpython_behavior)
+        cls.w_cpython_version = space.wrap(tuple(sys.version_info))
+        cls.w_appdirect = space.wrap(option.runappdirect)
+        cls.w_cpython_apptest = space.wrap(option.runappdirect and not hasattr(sys, 'pypy_translation_info'))
 
         def w_unwrap_wrap_unicode(space, w_obj):
             return space.wrap(space.unicode_w(w_obj))
@@ -112,7 +115,9 @@
                 return 123456
         assert A().__str__() == 123456
 
-    def test_object_identity(self):
+    def test_is_on_primitives(self):
+        if self.cpython_apptest:
+            skip("cpython behaves differently")
         assert 1 is 1
         x = 1000000
         assert x + 1 is int(str(x + 1))
@@ -130,6 +135,10 @@
             assert 1+x*1j is 1+x*1j
         l = [1]
         assert l[0] is l[0]
+
+    def test_is_on_strs(self):
+        if self.appdirect:
+            skip("cannot run this test as apptest")
         l = ["a"]
         assert l[0] is l[0]
         u = u"a"
@@ -137,7 +146,9 @@
         s = "a"
         assert self.unwrap_wrap_str(s) is s
 
-    def test_id(self):
+    def test_id_on_primitives(self):
+        if self.cpython_apptest:
+            skip("cpython behaves differently")
         assert id(1) == (1 << 3) + 1
         assert id(1l) == (1 << 3) + 3
         class myint(int):
@@ -149,12 +160,17 @@
         assert hex(id(2.0)) == '0x20000000000000005L'
         assert id(0.0) == 5
 
+    def test_id_on_strs(self):
+        if self.appdirect:
+            skip("cannot run this test as apptest")
         u = u"a"
         assert id(self.unwrap_wrap_unicode(u)) == id(u)
         s = "a"
         assert id(self.unwrap_wrap_str(s)) == id(s)
 
-    def test_identity_vs_id(self):
+    def test_identity_vs_id_primitives(self):
+        if self.cpython_apptest:
+            skip("cpython behaves differently")
         import sys
         l = range(-10, 10)
         for i in range(10):
@@ -167,14 +183,35 @@
             l.append(1 + i * 1j)
             s = str(i)
             l.append(s)
+            u = unicode(s)
+            l.append(u)
+        l.append(-0.0)
+        l.append(None)
+        l.append(True)
+        l.append(False)
+        s = "s"
+        l.append(s)
+        s = u"s"
+        l.append(s)
+
+        for i, a in enumerate(l):
+            for b in l[i:]:
+                assert (a is b) == (id(a) == id(b))
+                if a is b:
+                    assert a == b
+
+    def test_identity_vs_id_str(self):
+        if self.appdirect:
+            skip("cannot run this test as apptest")
+        import sys
+        l = range(-10, 10)
+        for i in range(10):
+            s = str(i)
+            l.append(s)
             l.append(self.unwrap_wrap_str(s))
             u = unicode(s)
             l.append(u)
             l.append(self.unwrap_wrap_unicode(u))
-        l.append(-0.0)
-        l.append(None)
-        l.append(True)
-        l.append(False)
         s = "s"
         l.append(s)
         l.append(self.unwrap_wrap_str(s))


More information about the pypy-commit mailing list