Index: Lib/distutils/tests/test_dir_util.py =================================================================== --- Lib/distutils/tests/test_dir_util.py (revision 84815) +++ Lib/distutils/tests/test_dir_util.py (working copy) @@ -1,6 +1,7 @@ """Tests for distutils.dir_util.""" import unittest import os +import stat import shutil from distutils.dir_util import (mkpath, remove_tree, create_tree, copy_tree, @@ -48,6 +49,12 @@ wanted = ["removing '%s' (and everything under it)" % self.root_target] self.assertEquals(self._logs, wanted) + def test_mkpath_with_custom_mode(self): + mkpath(self.target, 0700) + self.assertEqual(stat.S_IMODE(os.stat(self.target).st_mode), 0700) + mkpath(self.target2, 0555) + self.assertEqual(stat.S_IMODE(os.stat(self.target2).st_mode), 0555) + def test_create_tree_verbosity(self): create_tree(self.root_target, ['one', 'two', 'three'], verbose=0) Index: Lib/distutils/dir_util.py =================================================================== --- Lib/distutils/dir_util.py (revision 84815) +++ Lib/distutils/dir_util.py (working copy) @@ -68,7 +68,7 @@ if not dry_run: try: - os.mkdir(head) + os.mkdir(head, mode) created_dirs.append(head) except OSError, exc: raise DistutilsFileError, \