Issue 2354: Fix-up compare warning. Patch contributed by Jeff Balogh.

This commit is contained in:
Raymond Hettinger 2008-03-19 17:45:19 +00:00
parent 977eb021f3
commit 05387861ea
2 changed files with 15 additions and 1 deletions

View File

@ -91,6 +91,20 @@ class TestPy3KWarnings(unittest.TestCase):
def assertWarning(self, _, warning, expected_message):
self.assertEqual(str(warning.message), expected_message)
def test_sort_cmp_arg(self):
expected = "In 3.x, the cmp argument is no longer supported."
lst = range(5)
cmp = lambda x,y: -1
with catch_warning() as w:
self.assertWarning(lst.sort(cmp=cmp), w, expected)
with catch_warning() as w:
self.assertWarning(sorted(lst, cmp=cmp), w, expected)
with catch_warning() as w:
self.assertWarning(lst.sort(cmp), w, expected)
with catch_warning() as w:
self.assertWarning(sorted(lst, cmp), w, expected)
def test_main():
run_unittest(TestPy3KWarnings)

View File

@ -2037,7 +2037,7 @@ listsort(PyListObject *self, PyObject *args, PyObject *kwds)
}
if (compare == Py_None)
compare = NULL;
if (compare == NULL &&
if (compare != NULL &&
Py_Py3kWarningFlag &&
PyErr_Warn(PyExc_DeprecationWarning,
"In 3.x, the cmp argument is no longer supported.") < 0)