[pypy-commit] pypy default: test, fix for missing nb_* slot, what else is missing?
mattip
pypy.commits at gmail.com
Fri Jul 29 11:11:17 EDT 2016
Author: mattip <matti.picus at gmail.com>
Branch:
Changeset: r85908:d67646a1ac41
Date: 2016-07-29 10:10 -0500
http://bitbucket.org/pypy/pypy/changeset/d67646a1ac41/
Log: test, fix for missing nb_* slot, what else is missing?
diff --git a/pypy/module/cpyext/slotdefs.py b/pypy/module/cpyext/slotdefs.py
--- a/pypy/module/cpyext/slotdefs.py
+++ b/pypy/module/cpyext/slotdefs.py
@@ -381,6 +381,7 @@
('tp_as_number.c_nb_invert', '__invert__'),
('tp_as_number.c_nb_index', '__index__'),
('tp_as_number.c_nb_hex', '__hex__'),
+ ('tp_as_number.c_nb_oct', '__oct__'),
('tp_str', '__str__'),
('tp_repr', '__repr__'),
('tp_iter', '__iter__'),
diff --git a/pypy/module/cpyext/test/test_longobject.py b/pypy/module/cpyext/test/test_longobject.py
--- a/pypy/module/cpyext/test/test_longobject.py
+++ b/pypy/module/cpyext/test/test_longobject.py
@@ -259,8 +259,19 @@
ret = PyLong_FromLong(-1);
Py_DECREF(obj);
return ret;
+ """),
+ ("has_oct", "METH_NOARGS",
+ """
+ PyObject *ret, *obj = PyLong_FromLong(42);
+ if (obj->ob_type->tp_as_number->nb_oct)
+ ret = obj->ob_type->tp_as_number->nb_oct(obj);
+ else
+ ret = PyLong_FromLong(-1);
+ Py_DECREF(obj);
+ return ret;
""")])
assert module.has_sub() == 0
assert module.has_pow() == 0
assert module.has_hex() == '0x2aL'
+ assert module.has_oct() == '052L'
More information about the pypy-commit
mailing list