]> granicus.if.org Git - python/commitdiff
Test that uu.py will not override an existing file if out_file isn't
authorBarry Warsaw <barry@python.org>
Fri, 17 Aug 2001 20:00:11 +0000 (20:00 +0000)
committerBarry Warsaw <barry@python.org>
Fri, 17 Aug 2001 20:00:11 +0000 (20:00 +0000)
given and the path is gleaned from the uu header.

Lib/test/test_uu.py

index 8c324d187db15ae165dbf024abdb457de99b4d5a..07bd482a5efe155ca01c2484c9e360bc6b24b8ec 100644 (file)
@@ -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