#!/usr/bin/env python import psycopg2 import psycopg2.extensions import time import unittest import gc import sys if sys.version_info < (3,): import tests else: import py3tests as tests class StolenReferenceTestCase(unittest.TestCase): def test_stolen_reference_bug(self): def fish(val, cur): gc.collect() return 42 conn = psycopg2.connect(tests.dsn) UUID = psycopg2.extensions.new_type((2950,), "UUID", fish) psycopg2.extensions.register_type(UUID, conn) curs = conn.cursor() curs.execute("select 'b5219e01-19ab-4994-b71e-149225dc51e4'::uuid") curs.fetchone() def test_suite(): return unittest.TestLoader().loadTestsFromName(__name__) if __name__ == "__main__": unittest.main()