raise ValueError("can't have read/write/append mode at once")
if not (creating or reading or writing or appending):
raise ValueError("must have exactly one of read/write/append mode")
- if binary and encoding is not None and encoding != "locale":
+ if binary and encoding is not None:
raise ValueError("binary mode doesn't take an encoding argument")
if binary and errors is not None:
raise ValueError("binary mode doesn't take an errors argument")
self.assertRaises(OSError, obj.truncate)
self.assertRaises(OSError, obj.truncate, 0)
- def test_open_binmode_encoding(self):
- """open() raises ValueError when encoding is specified in bin mode"""
- self.assertRaises(ValueError, self.open, os_helper.TESTFN,
- "wb", encoding="utf-8")
-
- # encoding=None and encoding="locale" is allowed.
- with self.open(os_helper.TESTFN, "wb", encoding=None):
- pass
- with self.open(os_helper.TESTFN, "wb", encoding="locale"):
- pass
-
def test_open_handles_NUL_chars(self):
fn_with_NUL = 'foo\0bar'
self.assertRaises(ValueError, self.open, fn_with_NUL, 'w')
goto error;
}
- if (binary && encoding != NULL
- && strcmp(encoding, "locale") != 0) {
+ if (binary && encoding != NULL) {
PyErr_SetString(PyExc_ValueError,
"binary mode doesn't take an encoding argument");
goto error;