summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorRobert Collins <rbtcollins@hp.com>2015-07-25 18:43:13 (GMT)
committerRobert Collins <rbtcollins@hp.com>2015-07-25 18:43:13 (GMT)
commitc94a1dc4c9a5d23fdb21f6928dd737a59ef3dfb2 (patch)
treeabbbf37e11a6ba307ba00eaa2cf40e27d62d09d2 /Lib
parent882667203ca638ffce4238740c521c2a8320be09 (diff)
downloadcpython-c94a1dc4c9a5d23fdb21f6928dd737a59ef3dfb2.zip
cpython-c94a1dc4c9a5d23fdb21f6928dd737a59ef3dfb2.tar.gz
cpython-c94a1dc4c9a5d23fdb21f6928dd737a59ef3dfb2.tar.bz2
- Issue #2091: error correctly on open() with mode 'U' and '+'
open() accepted a 'U' mode string containing '+', but 'U' can only be used with 'r'. Patch from Jeff Balogh and John O'Connor.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/_pyio.py4
-rw-r--r--Lib/test/test_file.py2
2 files changed, 3 insertions, 3 deletions
diff --git a/Lib/_pyio.py b/Lib/_pyio.py
index 50ad9ff..33d8a3f 100644
--- a/Lib/_pyio.py
+++ b/Lib/_pyio.py
@@ -181,8 +181,8 @@ def open(file, mode="r", buffering=-1, encoding=None, errors=None,
text = "t" in modes
binary = "b" in modes
if "U" in modes:
- if creating or writing or appending:
- raise ValueError("can't use U and writing mode at once")
+ if creating or writing or appending or updating:
+ raise ValueError("mode U cannot be combined with 'x', 'w', 'a', or '+'")
import warnings
warnings.warn("'U' mode is deprecated",
DeprecationWarning, 2)
diff --git a/Lib/test/test_file.py b/Lib/test/test_file.py
index d54e976..94f189a 100644
--- a/Lib/test/test_file.py
+++ b/Lib/test/test_file.py
@@ -139,7 +139,7 @@ class OtherFileTests:
def testModeStrings(self):
# check invalid mode strings
- for mode in ("", "aU", "wU+"):
+ for mode in ("", "aU", "wU+", "U+", "+U", "rU+"):
try:
f = self.open(TESTFN, mode)
except ValueError: