@@ -1605,18 +1605,20 @@ def test_absolute_posix(self):
1605
1605
)
1606
1606
@needs_posix
1607
1607
def test_open_mode (self ):
1608
- old_mask = os .umask (0 )
1608
+ # Unmask all permissions except world-write, which may
1609
+ # not be supported on some filesystems (see GH-85633.)
1610
+ old_mask = os .umask (0o002 )
1609
1611
self .addCleanup (os .umask , old_mask )
1610
1612
p = self .cls (self .base )
1611
1613
with (p / 'new_file' ).open ('wb' ):
1612
1614
pass
1613
1615
st = os .stat (self .parser .join (self .base , 'new_file' ))
1614
- self .assertEqual (stat .S_IMODE (st .st_mode ), 0o666 )
1615
- os .umask (0o022 )
1616
+ self .assertEqual (stat .S_IMODE (st .st_mode ), 0o664 )
1617
+ os .umask (0o026 )
1616
1618
with (p / 'other_new_file' ).open ('wb' ):
1617
1619
pass
1618
1620
st = os .stat (self .parser .join (self .base , 'other_new_file' ))
1619
- self .assertEqual (stat .S_IMODE (st .st_mode ), 0o644 )
1621
+ self .assertEqual (stat .S_IMODE (st .st_mode ), 0o640 )
1620
1622
1621
1623
@needs_posix
1622
1624
def test_resolve_root (self ):
@@ -1634,16 +1636,18 @@ def test_resolve_root(self):
1634
1636
)
1635
1637
@needs_posix
1636
1638
def test_touch_mode (self ):
1637
- old_mask = os .umask (0 )
1639
+ # Unmask all permissions except world-write, which may
1640
+ # not be supported on some filesystems (see GH-85633.)
1641
+ old_mask = os .umask (0o002 )
1638
1642
self .addCleanup (os .umask , old_mask )
1639
1643
p = self .cls (self .base )
1640
1644
(p / 'new_file' ).touch ()
1641
1645
st = os .stat (self .parser .join (self .base , 'new_file' ))
1642
- self .assertEqual (stat .S_IMODE (st .st_mode ), 0o666 )
1643
- os .umask (0o022 )
1646
+ self .assertEqual (stat .S_IMODE (st .st_mode ), 0o664 )
1647
+ os .umask (0o026 )
1644
1648
(p / 'other_new_file' ).touch ()
1645
1649
st = os .stat (self .parser .join (self .base , 'other_new_file' ))
1646
- self .assertEqual (stat .S_IMODE (st .st_mode ), 0o644 )
1650
+ self .assertEqual (stat .S_IMODE (st .st_mode ), 0o640 )
1647
1651
(p / 'masked_new_file' ).touch (mode = 0o750 )
1648
1652
st = os .stat (self .parser .join (self .base , 'masked_new_file' ))
1649
1653
self .assertEqual (stat .S_IMODE (st .st_mode ), 0o750 )
0 commit comments