Skip tests on python implementations without getrefcount()

PyPy is one of these.

Conflicts:

	tests/test_cursor.py
	tests/test_module.py
This commit is contained in:
Daniele Varrazzo 2013-05-06 10:39:24 +01:00
parent 50b68aa987
commit d0f49f9887
2 changed files with 13 additions and 2 deletions

View File

@ -26,8 +26,8 @@ import time
import psycopg2
import psycopg2.extensions
from psycopg2.extensions import b
from testconfig import dsn
from testutils import unittest, skip_before_postgres, skip_if_no_namedtuple
from testconfig import dsn, unittest, skip_before_postgres
from testutils import skip_if_no_namedtuple, skip_if_no_getrefcount
class CursorTests(unittest.TestCase):
@ -103,6 +103,7 @@ class CursorTests(unittest.TestCase):
self.assertEqual(b('SELECT 10.3;'),
cur.mogrify("SELECT %s;", (Decimal("10.3"),)))
@skip_if_no_getrefcount
def test_mogrify_leak_on_multiple_reference(self):
# issue #81: reference leak when a parameter value is referenced
# more than once from a dict.
@ -163,6 +164,7 @@ class CursorTests(unittest.TestCase):
curs = self.conn.cursor()
w = ref(curs)
del curs
import gc; gc.collect()
self.assert_(w() is None)
def test_null_name(self):

View File

@ -223,6 +223,15 @@ def skip_if_no_superuser(f):
return skip_if_no_superuser_
def skip_if_no_getrefcount(f):
@wraps(f)
def skip_if_no_getrefcount_(self):
if not hasattr(sys, 'getrefcount'):
return self.skipTest('skipped, no sys.getrefcount()')
else:
return f(self)
return skip_if_no_getrefcount_
def script_to_py3(script):
"""Convert a script to Python3 syntax if required."""
if sys.version_info[0] < 3: