Kaydet (Commit) a146bef0 authored tarafından Serhiy Storchaka's avatar Serhiy Storchaka

Catch deprecation warnings emitted when non-integers are formatted with %c, %o

and %x (introduced in issue #19995).
üst 303718c3
...@@ -1179,7 +1179,8 @@ class MixinStrUnicodeUserStringTest: ...@@ -1179,7 +1179,8 @@ class MixinStrUnicodeUserStringTest:
self.checkraises(TypeError, 'abc', '__mod__') self.checkraises(TypeError, 'abc', '__mod__')
self.checkraises(TypeError, '%(foo)s', '__mod__', 42) self.checkraises(TypeError, '%(foo)s', '__mod__', 42)
self.checkraises(TypeError, '%s%s', '__mod__', (42,)) self.checkraises(TypeError, '%s%s', '__mod__', (42,))
self.checkraises(TypeError, '%c', '__mod__', (None,)) with self.assertWarns(DeprecationWarning):
self.checkraises(TypeError, '%c', '__mod__', (None,))
self.checkraises(ValueError, '%(foo', '__mod__', {}) self.checkraises(ValueError, '%(foo', '__mod__', {})
self.checkraises(TypeError, '%(foo)s %(bar)s', '__mod__', ('foo', 42)) self.checkraises(TypeError, '%(foo)s %(bar)s', '__mod__', ('foo', 42))
self.checkraises(TypeError, '%d', '__mod__', "42") # not numeric self.checkraises(TypeError, '%d', '__mod__', "42") # not numeric
......
...@@ -142,7 +142,8 @@ class FormatTest(unittest.TestCase): ...@@ -142,7 +142,8 @@ class FormatTest(unittest.TestCase):
testformat("%#+027.23X", big, "+0X0001234567890ABCDEF12345") testformat("%#+027.23X", big, "+0X0001234567890ABCDEF12345")
# same, except no 0 flag # same, except no 0 flag
testformat("%#+27.23X", big, " +0X001234567890ABCDEF12345") testformat("%#+27.23X", big, " +0X001234567890ABCDEF12345")
testformat("%x", float(big), "123456_______________", 6) with self.assertWarns(DeprecationWarning):
testformat("%x", float(big), "123456_______________", 6)
big = 0o12345670123456701234567012345670 # 32 octal digits big = 0o12345670123456701234567012345670 # 32 octal digits
testformat("%o", big, "12345670123456701234567012345670") testformat("%o", big, "12345670123456701234567012345670")
testformat("%o", -big, "-12345670123456701234567012345670") testformat("%o", -big, "-12345670123456701234567012345670")
...@@ -182,7 +183,8 @@ class FormatTest(unittest.TestCase): ...@@ -182,7 +183,8 @@ class FormatTest(unittest.TestCase):
testformat("%034.33o", big, "0012345670123456701234567012345670") testformat("%034.33o", big, "0012345670123456701234567012345670")
# base marker shouldn't change that # base marker shouldn't change that
testformat("%0#34.33o", big, "0o012345670123456701234567012345670") testformat("%0#34.33o", big, "0o012345670123456701234567012345670")
testformat("%o", float(big), "123456__________________________", 6) with self.assertWarns(DeprecationWarning):
testformat("%o", float(big), "123456__________________________", 6)
# Some small ints, in both Python int and flavors). # Some small ints, in both Python int and flavors).
testformat("%d", 42, "42") testformat("%d", 42, "42")
testformat("%d", -42, "-42") testformat("%d", -42, "-42")
...@@ -193,7 +195,8 @@ class FormatTest(unittest.TestCase): ...@@ -193,7 +195,8 @@ class FormatTest(unittest.TestCase):
testformat("%#x", 1, "0x1") testformat("%#x", 1, "0x1")
testformat("%#X", 1, "0X1") testformat("%#X", 1, "0X1")
testformat("%#X", 1, "0X1") testformat("%#X", 1, "0X1")
testformat("%#x", 1.0, "0x1") with self.assertWarns(DeprecationWarning):
testformat("%#x", 1.0, "0x1")
testformat("%#o", 1, "0o1") testformat("%#o", 1, "0o1")
testformat("%#o", 1, "0o1") testformat("%#o", 1, "0o1")
testformat("%#o", 0, "0o0") testformat("%#o", 0, "0o0")
...@@ -210,12 +213,14 @@ class FormatTest(unittest.TestCase): ...@@ -210,12 +213,14 @@ class FormatTest(unittest.TestCase):
testformat("%x", -0x42, "-42") testformat("%x", -0x42, "-42")
testformat("%x", 0x42, "42") testformat("%x", 0x42, "42")
testformat("%x", -0x42, "-42") testformat("%x", -0x42, "-42")
testformat("%x", float(0x42), "42") with self.assertWarns(DeprecationWarning):
testformat("%x", float(0x42), "42")
testformat("%o", 0o42, "42") testformat("%o", 0o42, "42")
testformat("%o", -0o42, "-42") testformat("%o", -0o42, "-42")
testformat("%o", 0o42, "42") testformat("%o", 0o42, "42")
testformat("%o", -0o42, "-42") testformat("%o", -0o42, "-42")
testformat("%o", float(0o42), "42") with self.assertWarns(DeprecationWarning):
testformat("%o", float(0o42), "42")
testformat("%r", "\u0378", "'\\u0378'") # non printable testformat("%r", "\u0378", "'\\u0378'") # non printable
testformat("%a", "\u0378", "'\\u0378'") # non printable testformat("%a", "\u0378", "'\\u0378'") # non printable
testformat("%r", "\u0374", "'\u0374'") # printable testformat("%r", "\u0374", "'\u0374'") # printable
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment