Skip to content
Snippets Groups Projects
Unverified Commit 107c21c5 authored by Serhiy Storchaka's avatar Serhiy Storchaka Committed by GitHub
Browse files

gh-94864: Fix PyArg_Parse* with deprecated format units "u" and "Z" (GH-94902)

It returned 1 (success) when warnings are turned into exceptions.
parent 30f28ac2
Branches
Tags
No related merge requests found
......@@ -2,6 +2,7 @@
import math
import string
import sys
import warnings
from test import support
from test.support import import_helper
from test.support import warnings_helper
......@@ -999,6 +1000,9 @@ def test_u(self):
self.assertRaises(TypeError, getargs_u, memoryview(b'memoryview'))
with self.assertWarns(DeprecationWarning):
self.assertRaises(TypeError, getargs_u, None)
with warnings.catch_warnings():
warnings.simplefilter('error', DeprecationWarning)
self.assertRaises(DeprecationWarning, getargs_u, 'abc\xe9')
@support.requires_legacy_unicode_capi
def test_u_hash(self):
......@@ -1015,6 +1019,9 @@ def test_u_hash(self):
self.assertRaises(TypeError, getargs_u_hash, memoryview(b'memoryview'))
with self.assertWarns(DeprecationWarning):
self.assertRaises(TypeError, getargs_u_hash, None)
with warnings.catch_warnings():
warnings.simplefilter('error', DeprecationWarning)
self.assertRaises(DeprecationWarning, getargs_u_hash, 'abc\xe9')
@support.requires_legacy_unicode_capi
def test_Z(self):
......@@ -1031,6 +1038,9 @@ def test_Z(self):
self.assertRaises(TypeError, getargs_Z, memoryview(b'memoryview'))
with self.assertWarns(DeprecationWarning):
self.assertIsNone(getargs_Z(None))
with warnings.catch_warnings():
warnings.simplefilter('error', DeprecationWarning)
self.assertRaises(DeprecationWarning, getargs_Z, 'abc\xe9')
@support.requires_legacy_unicode_capi
def test_Z_hash(self):
......@@ -1047,6 +1057,9 @@ def test_Z_hash(self):
self.assertRaises(TypeError, getargs_Z_hash, memoryview(b'memoryview'))
with self.assertWarns(DeprecationWarning):
self.assertIsNone(getargs_Z_hash(None))
with warnings.catch_warnings():
warnings.simplefilter('error', DeprecationWarning)
self.assertRaises(DeprecationWarning, getargs_Z_hash, 'abc\xe9')
class Object_TestCase(unittest.TestCase):
......
Fix ``PyArg_Parse*`` with deprecated format units "u" and "Z". It returned 1
(success) when warnings are turned into exceptions.
......@@ -1017,7 +1017,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
{
if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
"getargs: The '%c' format is deprecated. Use 'U' instead.", c)) {
return NULL;
RETURN_ERR_OCCURRED;
}
_Py_COMP_DIAG_PUSH
_Py_COMP_DIAG_IGNORE_DEPR_DECLS
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment