@@ -2526,14 +2526,15 @@ def test_mkdir_with_parent_mode(self):
25262526 p = self .cls (self .base , 'newdirPM' , 'subdirPM' )
25272527 self .assertFalse (p .exists ())
25282528 if os .name != 'nt' :
2529- # Specify different modes for parent and leaf directories
2530- p .mkdir (0o755 , parents = True , parent_mode = 0o750 )
2531- self .assertTrue (p .exists ())
2532- self .assertTrue (p .is_dir ())
2533- # Leaf directory gets the mode parameter
2534- self .assertEqual (p .stat ().st_mode & 0o777 , 0o755 )
2535- # Parent directory gets the parent_mode parameter
2536- self .assertEqual (p .parent .stat ().st_mode & 0o777 , 0o750 )
2529+ with os_helper .temp_umask (0o022 ):
2530+ # Specify different modes for parent and leaf directories
2531+ p .mkdir (0o755 , parents = True , parent_mode = 0o750 )
2532+ self .assertTrue (p .exists ())
2533+ self .assertTrue (p .is_dir ())
2534+ # Leaf directory gets the mode parameter
2535+ self .assertEqual (p .stat ().st_mode & 0o777 , 0o755 )
2536+ # Parent directory gets the parent_mode parameter
2537+ self .assertEqual (p .parent .stat ().st_mode & 0o777 , 0o750 )
25372538
25382539 @unittest .skipIf (
25392540 is_emscripten or is_wasi ,
@@ -2548,15 +2549,16 @@ def test_mkdir_parent_mode_deep_hierarchy(self):
25482549 p = self .cls (self .base , 'level1PM' , 'level2PM' , 'level3PM' )
25492550 self .assertFalse (p .exists ())
25502551 if os .name != 'nt' :
2551- p .mkdir (0o755 , parents = True , parent_mode = 0o700 )
2552- self .assertTrue (p .exists ())
2553- # Check that all parent directories have parent_mode
2554- level1 = self .cls (self .base , 'level1PM' )
2555- level2 = level1 / 'level2PM'
2556- self .assertEqual (level1 .stat ().st_mode & 0o777 , 0o700 )
2557- self .assertEqual (level2 .stat ().st_mode & 0o777 , 0o700 )
2558- # Leaf directory has the regular mode
2559- self .assertEqual (p .stat ().st_mode & 0o777 , 0o755 )
2552+ with os_helper .temp_umask (0o022 ):
2553+ p .mkdir (0o755 , parents = True , parent_mode = 0o700 )
2554+ self .assertTrue (p .exists ())
2555+ # Check that all parent directories have parent_mode
2556+ level1 = self .cls (self .base , 'level1PM' )
2557+ level2 = level1 / 'level2PM'
2558+ self .assertEqual (level1 .stat ().st_mode & 0o777 , 0o700 )
2559+ self .assertEqual (level2 .stat ().st_mode & 0o777 , 0o700 )
2560+ # Leaf directory has the regular mode
2561+ self .assertEqual (p .stat ().st_mode & 0o777 , 0o755 )
25602562
25612563 @unittest .skipIf (
25622564 is_emscripten or is_wasi ,
@@ -2593,11 +2595,12 @@ def test_mkdir_parent_mode_same_as_mode(self):
25932595 p = self .cls (self .base , 'samedirPM' , 'subdirPM' )
25942596 self .assertFalse (p .exists ())
25952597 if os .name != 'nt' :
2596- p .mkdir (0o705 , parents = True , parent_mode = 0o705 )
2597- self .assertTrue (p .exists ())
2598- # Both directories should have the same mode
2599- self .assertEqual (p .stat ().st_mode & 0o777 , 0o705 )
2600- self .assertEqual (p .parent .stat ().st_mode & 0o777 , 0o705 )
2598+ with os_helper .temp_umask (0o022 ):
2599+ p .mkdir (0o705 , parents = True , parent_mode = 0o705 )
2600+ self .assertTrue (p .exists ())
2601+ # Both directories should have the same mode
2602+ self .assertEqual (p .stat ().st_mode & 0o777 , 0o705 )
2603+ self .assertEqual (p .parent .stat ().st_mode & 0o777 , 0o705 )
26012604
26022605 @needs_symlinks
26032606 def test_symlink_to (self ):
0 commit comments