test_exc('%c', sys.maxunicode+1, OverflowError,
"%c arg not in range(0x110000)")
#test_exc('%c', 2**128, OverflowError, "%c arg not in range(0x110000)")
- test_exc('%c', 3.14, TypeError, "%c requires int or char")
- test_exc('%c', 'ab', TypeError, "%c requires int or char")
- test_exc('%c', b'x', TypeError, "%c requires int or char")
+ test_exc('%c', 3.14, TypeError, "%c requires an int or a unicode character, not float")
+ test_exc('%c', 'ab', TypeError, "%c requires an int or a unicode character, not a string of length 2")
+ test_exc('%c', b'x', TypeError, "%c requires an int or a unicode character, not bytes")
if maxsize == 2**31-1:
# crashes 2.2.1 and earlier:
test_exc(b"%c", 2**128, OverflowError,
"%c arg not in range(256)")
test_exc(b"%c", b"Za", TypeError,
- "%c requires an integer in range(256) or a single byte")
+ "%c requires an integer in range(256) or a single byte, not a bytes object of length 2")
test_exc(b"%c", "Y", TypeError,
- "%c requires an integer in range(256) or a single byte")
+ "%c requires an integer in range(256) or a single byte, not str")
test_exc(b"%c", 3.14, TypeError,
- "%c requires an integer in range(256) or a single byte")
+ "%c requires an integer in range(256) or a single byte, not float")
test_exc(b"%b", "Xc", TypeError,
"%b requires a bytes-like object, "
"or an object that implements __bytes__, not 'str'")