summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_os.py
diff options
context:
space:
mode:
authorTerry Reedy <tjreedy@udel.edu>2010-12-02 07:05:56 (GMT)
committerTerry Reedy <tjreedy@udel.edu>2010-12-02 07:05:56 (GMT)
commit5a22b651173f142a600625a036fcf36484ade237 (patch)
tree35221434a0451ee9cf205f2e9dc17a69af69d596 /Lib/test/test_os.py
parent3cdf871a8c9bc5694a598bfdf22edece49584f48 (diff)
downloadcpython-5a22b651173f142a600625a036fcf36484ade237.zip
cpython-5a22b651173f142a600625a036fcf36484ade237.tar.gz
cpython-5a22b651173f142a600625a036fcf36484ade237.tar.bz2
Issue 9299 Add exist_ok parameter to os.makedirs to suppress 'File exists' exception. Patch by Ray Allen.
Diffstat (limited to 'Lib/test/test_os.py')
-rw-r--r--Lib/test/test_os.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 835e1f2..e27dd7a 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -630,6 +630,28 @@ class MakedirTests(unittest.TestCase):
'dir5', 'dir6')
os.makedirs(path)
+ def test_exist_ok_existing_directory(self):
+ path = os.path.join(support.TESTFN, 'dir1')
+ mode = 0o777
+ old_mask = os.umask(0o022)
+ os.makedirs(path, mode)
+ self.assertRaises(OSError, os.makedirs, path, mode)
+ self.assertRaises(OSError, os.makedirs, path, mode, exist_ok=False)
+ self.assertRaises(OSError, os.makedirs, path, 0o776, exist_ok=True)
+ os.makedirs(path, mode=mode, exist_ok=True)
+ os.umask(old_mask)
+
+ def test_exist_ok_existing_regular_file(self):
+ base = support.TESTFN
+ path = os.path.join(support.TESTFN, 'dir1')
+ f = open(path, 'w')
+ f.write('abc')
+ f.close()
+ self.assertRaises(OSError, os.makedirs, path)
+ self.assertRaises(OSError, os.makedirs, path, exist_ok=False)
+ self.assertRaises(OSError, os.makedirs, path, exist_ok=True)
+ os.remove(path)
+
def tearDown(self):
path = os.path.join(support.TESTFN, 'dir1', 'dir2', 'dir3',
'dir4', 'dir5', 'dir6')