This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: test_pathlib assumes underlying filesystem permits creation with world-write permissions
Type: behavior Stage:
Components: Tests Versions: Python 3.10, Python 3.9, Python 3.8
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: Michael.Felt, serhiy.storchaka
Priority: normal Keywords:

Created on 2020-08-03 07:06 by Michael.Felt, last changed 2022-04-11 14:59 by admin.

Messages (2)
msg374725 - (view) Author: Michael Felt (Michael.Felt) * Date: 2020-08-03 07:06
Two tests in test_pathlib test that the files created have mode o666 (rw-rw-rw).

However, on a filesystem (in my case NFS) configured to never permit global write - the test will always fail.

Is this something to be concerned about?

I can think of a few possible ways to react to an exception such as this, e.g., rather than 'FAIL' outright, try umask(2).


++++++++
======================================================================
FAIL: test_open_mode (test.test_pathlib.PosixPathTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/data/prj/python/src/py38-3.8.5/Lib/test/test_pathlib.py", line 2210, in test_open_mode
    self.assertEqual(stat.S_IMODE(st.st_mode), 0o666)
AssertionError: 436 != 438

======================================================================
FAIL: test_touch_mode (test.test_pathlib.PosixPathTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/data/prj/python/src/py38-3.8.5/Lib/test/test_pathlib.py", line 2223, in test_touch_mode
    self.assertEqual(stat.S_IMODE(st.st_mode), 0o666)
AssertionError: 436 != 438

----------------------------------------------------------------------
++++++++

Just to verify it does work when on a 'local' filesystem.

cp -rp build /tmp/build
mv build build.nfs
ln -s /tmp/build build

== Tests result: SUCCESS ==

1 test OK.

Total duration: 7.8 sec
Tests result: SUCCESS
msg389860 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2021-03-30 21:42
umask(0o002) looks good idea (and perhaps umask(0o026) instead of umask(0o022)). Please add also a short explanation comment.
History
Date User Action Args
2022-04-11 14:59:34adminsetgithub: 85633
2021-03-30 21:42:43serhiy.storchakasetnosy: + serhiy.storchaka
messages: + msg389860
2020-08-03 07:06:46Michael.Feltcreate