only order comparisons are removed in py3k #6119
This commit is contained in:
parent
0c6de43dd9
commit
1bf4765369
|
@ -21,6 +21,9 @@ class TestPy3KWarnings(unittest.TestCase):
|
||||||
def assertWarning(self, _, warning, expected_message):
|
def assertWarning(self, _, warning, expected_message):
|
||||||
self.assertEqual(str(warning.message), expected_message)
|
self.assertEqual(str(warning.message), expected_message)
|
||||||
|
|
||||||
|
def assertNoWarning(self, _, recorder):
|
||||||
|
self.assertEqual(len(recorder.warnings), 0)
|
||||||
|
|
||||||
def test_backquote(self):
|
def test_backquote(self):
|
||||||
expected = 'backquote not supported in 3.x; use repr()'
|
expected = 'backquote not supported in 3.x; use repr()'
|
||||||
with check_warnings() as w:
|
with check_warnings() as w:
|
||||||
|
@ -113,7 +116,7 @@ class TestPy3KWarnings(unittest.TestCase):
|
||||||
|
|
||||||
def test_builtin_function_or_method_comparisons(self):
|
def test_builtin_function_or_method_comparisons(self):
|
||||||
expected = ('builtin_function_or_method '
|
expected = ('builtin_function_or_method '
|
||||||
'inequality comparisons not supported in 3.x')
|
'order comparisons not supported in 3.x')
|
||||||
func = eval
|
func = eval
|
||||||
meth = {}.get
|
meth = {}.get
|
||||||
with check_warnings() as w:
|
with check_warnings() as w:
|
||||||
|
@ -124,6 +127,12 @@ class TestPy3KWarnings(unittest.TestCase):
|
||||||
self.assertWarning(meth <= func, w, expected)
|
self.assertWarning(meth <= func, w, expected)
|
||||||
w.reset()
|
w.reset()
|
||||||
self.assertWarning(meth >= func, w, expected)
|
self.assertWarning(meth >= func, w, expected)
|
||||||
|
w.reset()
|
||||||
|
self.assertNoWarning(meth == func, w)
|
||||||
|
self.assertNoWarning(meth != func, w)
|
||||||
|
lam = lambda x: x
|
||||||
|
self.assertNoWarning(lam == func, w)
|
||||||
|
self.assertNoWarning(lam != func, w)
|
||||||
|
|
||||||
def test_frame_attributes(self):
|
def test_frame_attributes(self):
|
||||||
template = "%s has been removed in 3.x"
|
template = "%s has been removed in 3.x"
|
||||||
|
|
|
@ -12,6 +12,9 @@ What's New in Python 2.7 alpha 1
|
||||||
Core and Builtins
|
Core and Builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #6119: Fixed a incorrect Py3k warning about order comparisons of builtin
|
||||||
|
functions and methods.
|
||||||
|
|
||||||
- Issue #6347: Include inttypes.h as well as stdint.h in pyport.h.
|
- Issue #6347: Include inttypes.h as well as stdint.h in pyport.h.
|
||||||
This fixes a build failure on HP-UX: int32_t and uint32_t are
|
This fixes a build failure on HP-UX: int32_t and uint32_t are
|
||||||
defined in inttypes.h instead of stdint.h on that platform.
|
defined in inttypes.h instead of stdint.h on that platform.
|
||||||
|
|
|
@ -230,12 +230,9 @@ meth_richcompare(PyObject *self, PyObject *other, int op)
|
||||||
PyObject *res;
|
PyObject *res;
|
||||||
int eq;
|
int eq;
|
||||||
|
|
||||||
if ((op != Py_EQ && op != Py_NE) ||
|
if (op != Py_EQ && op != Py_NE) {
|
||||||
!PyCFunction_Check(self) ||
|
/* Py3K warning if comparison isn't == or !=. */
|
||||||
!PyCFunction_Check(other))
|
if (PyErr_WarnPy3k("builtin_function_or_method order "
|
||||||
{
|
|
||||||
/* Py3K warning if types are not equal and comparison isn't == or != */
|
|
||||||
if (PyErr_WarnPy3k("builtin_function_or_method inequality "
|
|
||||||
"comparisons not supported in 3.x", 1) < 0) {
|
"comparisons not supported in 3.x", 1) < 0) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -243,6 +240,10 @@ meth_richcompare(PyObject *self, PyObject *other, int op)
|
||||||
Py_INCREF(Py_NotImplemented);
|
Py_INCREF(Py_NotImplemented);
|
||||||
return Py_NotImplemented;
|
return Py_NotImplemented;
|
||||||
}
|
}
|
||||||
|
else if (!PyCFunction_Check(self) || !PyCFunction_Check(other)) {
|
||||||
|
Py_INCREF(Py_NotImplemented);
|
||||||
|
return Py_NotImplemented;
|
||||||
|
}
|
||||||
a = (PyCFunctionObject *)self;
|
a = (PyCFunctionObject *)self;
|
||||||
b = (PyCFunctionObject *)other;
|
b = (PyCFunctionObject *)other;
|
||||||
eq = a->m_self == b->m_self;
|
eq = a->m_self == b->m_self;
|
||||||
|
|
Loading…
Reference in New Issue