Commit 8699c7fc authored by Tres Seaver's avatar Tres Seaver

Work toward tests passing under Python3 with C modules importable.

parent c4dfca67
/*****************************************************************************
Copyright (c) 2012 Zope Foundation and Contributors.
All Rights Reserved.
This software is subject to the provisions of the Zope Public License,
Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
FOR A PARTICULAR PURPOSE
****************************************************************************/
#ifndef PERSISTENT__COMPAT_H
#define PERSISTENT__COMPAT_H
#include "Python.h"
#if PY_MAJOR_VERSION >= 3
#define PY3K
#endif
#ifdef PY3K
#define INTERN PyUnicode_InternFromString
#define NATIVE_AS_STRING(x) PyBytes_AS_STRING(PyUnicode_AsUTF16String((x)))
#define NATIVE_FROM_STRING PyUnicode_FromString
#define NATIVE_FROM_STRING_AND_SIZE PyUnicode_FromStringAndSize
#define Py_TPFLAGS_HAVE_RICHCOMPARE 0
#define INT_FROM_LONG(x) PyLong_FromLong(x)
#define INT_CHECK(x) PyLong_Check(x)
#define INT_AS_LONG(x) PyLong_AS_LONG(x)
#define CAPI_CAPSULE_NAME "persistent.cPersistence.CAPI"
#else
#define INTERN PyString_InternFromString
#define NATIVE_AS_STRING PyString_AsString
#define NATIVE_FROM_STRING PyString_FromString
#define NATIVE_FROM_STRING_AND_SIZE PyString_FromStringAndSize
#define INT_FROM_LONG(x) PyInt_FromLong(x)
#define INT_CHECK(x) PyInt_Check(x)
#define INT_AS_LONG(x) PyInt_AS_LONG(x)
#endif
#endif
This diff is collapsed.
This diff is collapsed.
......@@ -15,28 +15,7 @@
#ifndef CPERSISTENCE_H
#define CPERSISTENCE_H
#include "Python.h"
#if PY_MAJOR_VERSION >= 3
#define PY3K
#endif
#ifdef PY3K
#define INTERN PyUnicode_InternFromString
#else
#define INTERN PyString_InternFromString
#endif
#ifdef PY3K
#define INT_FROM_LONG(x) PyLong_FromLong(x)
#define INT_CHECK(x) PyLong_Check(x)
#define INT_AS_LONG(x) PyLong_AS_LONG(x)
#else
#define INT_FROM_LONG(x) PyInt_FromLong(x)
#define INT_CHECK(x) PyInt_Check(x)
#define INT_AS_LONG(x) PyInt_AS_LONG(x)
#endif
#include "_compat.h"
#include "bytesobject.h"
#include "ring.h"
......
This diff is collapsed.
......@@ -604,6 +604,7 @@ class _Persistent_Base(object):
def test___setattr___v__name(self):
class Derived(self._getTargetClass()):
pass
import pdb; pdb.set_trace()
inst, jar, OID = self._makeOneWithJar(Derived)
self._clearMRU(jar)
inst._v_foo = 'bar'
......
......@@ -118,14 +118,15 @@ class pyTimeStampTests(unittest.TestCase):
def test_laterThan_invalid(self):
from persistent.timestamp import _makeOctets
ERRORS = (ValueError, TypeError)
SERIAL = _makeOctets('\x01' * 8)
ts = self._makeOne(SERIAL)
self.assertRaises(ValueError, ts.laterThan, None)
self.assertRaises(ValueError, ts.laterThan, '')
self.assertRaises(ValueError, ts.laterThan, ())
self.assertRaises(ValueError, ts.laterThan, [])
self.assertRaises(ValueError, ts.laterThan, {})
self.assertRaises(ValueError, ts.laterThan, object())
self.assertRaises(ERRORS, ts.laterThan, None)
self.assertRaises(ERRORS, ts.laterThan, '')
self.assertRaises(ERRORS, ts.laterThan, ())
self.assertRaises(ERRORS, ts.laterThan, [])
self.assertRaises(ERRORS, ts.laterThan, {})
self.assertRaises(ERRORS, ts.laterThan, object())
def test_laterThan_self_is_earlier(self):
from persistent.timestamp import _makeOctets
......@@ -152,7 +153,7 @@ class pyTimeStampTests(unittest.TestCase):
ts = self._makeOne(SERIAL)
self.assertEqual(repr(ts), _native(SERIAL))
class TimeStampTests(unittest.TestCase):
class TimeStampTests(pyTimeStampTests):
def _getTargetClass(self):
from persistent.timestamp import TimeStamp
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment