From 18a13933f94e0d46d95f1c56c8e132b12044598e Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Sat, 19 Jan 2013 21:06:35 +0200 Subject: [PATCH] Ensure that width and precision in string formatting test have type int, not long. Fix a regression from changeset d544873d62e9 (issue #15989). --- Lib/test/string_tests.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Lib/test/string_tests.py b/Lib/test/string_tests.py index f73d0ee188..d3412d0cdc 100644 --- a/Lib/test/string_tests.py +++ b/Lib/test/string_tests.py @@ -1114,19 +1114,19 @@ class MixinStrUnicodeUserStringTest: self.checkraises(TypeError, '%10.*f', '__mod__', ('foo', 42.)) self.checkraises(ValueError, '%10', '__mod__', (42,)) - if _testcapi.PY_SSIZE_T_MAX < sys.maxint: - self.checkraises(OverflowError, '%*s', '__mod__', - (_testcapi.PY_SSIZE_T_MAX + 1, '')) - if _testcapi.INT_MAX < sys.maxint: - self.checkraises(OverflowError, '%.*f', '__mod__', - (_testcapi.INT_MAX + 1, 1. / 7)) + width = int(_testcapi.PY_SSIZE_T_MAX + 1) + if width <= sys.maxint: + self.checkraises(OverflowError, '%*s', '__mod__', (width, '')) + prec = int(_testcapi.INT_MAX + 1) + if prec <= sys.maxint: + self.checkraises(OverflowError, '%.*f', '__mod__', (prec, 1. / 7)) # Issue 15989 - if 1 << (_testcapi.PY_SSIZE_T_MAX.bit_length() + 1) <= sys.maxint: - self.checkraises(OverflowError, '%*s', '__mod__', - (1 << (_testcapi.PY_SSIZE_T_MAX.bit_length() + 1), '')) - if _testcapi.UINT_MAX < sys.maxint: - self.checkraises(OverflowError, '%.*f', '__mod__', - (_testcapi.UINT_MAX + 1, 1. / 7)) + width = int(1 << (_testcapi.PY_SSIZE_T_MAX.bit_length() + 1)) + if width <= sys.maxint: + self.checkraises(OverflowError, '%*s', '__mod__', (width, '')) + prec = int(_testcapi.UINT_MAX + 1) + if prec <= sys.maxint: + self.checkraises(OverflowError, '%.*f', '__mod__', (prec, 1. / 7)) class X(object): pass self.checkraises(TypeError, 'abc', '__mod__', X()) -- 2.40.0