summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_uu.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/Lib/test/test_uu.py b/Lib/test/test_uu.py
index 8c324d1..07bd482 100644
--- a/Lib/test/test_uu.py
+++ b/Lib/test/test_uu.py
@@ -122,3 +122,37 @@ try:
raise TestFailed("No exception thrown")
except uu.Error, e:
verify(str(e) == 'No valid begin line found in input file')
+
+# Test to verify that decode() will refuse to overwrite an existing file
+import tempfile
+outfile = tempfile.mktemp()
+inp = StringIO('Here is a message to be uuencoded')
+out = StringIO()
+uu.encode(inp, out, outfile)
+out.seek(0)
+try:
+ if verbose:
+ print '9. decode w/file not exists is okay'
+ uu.decode(out)
+ if not os.path.exists(outfile):
+ raise TestFailed('uudecode w/ out_file=None failed')
+ fp = open(outfile)
+ data = fp.read()
+ fp.close()
+ if data <> inp.getvalue():
+ raise TestFailed('uudecode stored something weird')
+ # Try to write it again, which should cause a failure
+ if verbose:
+ print '10. uudecode w/file exists fails'
+ out.seek(0)
+ try:
+ uu.decode(out)
+ except uu.Error:
+ pass
+ else:
+ raise TestFailed('expected to get a "file exists" error')
+finally:
+ try:
+ os.unlink(outfile)
+ except OSError:
+ pass