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_site must not write outside the build directory: must not write into $HOME/.local/
Type: Stage: resolved
Components: Distutils, Tests Versions: Python 3.7
process
Status: closed Resolution: out of date
Dependencies: Superseder:
Assigned To: Nosy List: dstufft, eric.araujo, vstinner
Priority: normal Keywords:

Created on 2017-05-02 10:15 by vstinner, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Messages (1)
msg292739 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2017-05-02 10:15
test_site creates the $HOME/.local/lib/python3.7/site-packages/ directory, or parent directories if needed. That's wrong. An unit test must not modify its environment, especially the home directory!

The unit test must mock $HOME environment variable and mock the home directory.

Example of issue of writing into $HOME:

http://buildbot.python.org/all/builders/AMD64%20FreeBSD%20CURRENT%20Non-Debug%203.5/builds/75/steps/test/logs/stdio

[109/398] test_site
test_site skipped -- unable to create user site directory ('/.local/lib/python3.5/site-packages'): [Errno 13] Permission denied: '/.local'

On this buildbot, $HOME is set to /. The whole test_site test is skipped just because of that.

Recent change on test_site related to this issue: commit b85c136903c6d2368162f7c4a58f258c9c69ead0, bpo-30108.
History
Date User Action Args
2022-04-11 14:58:45adminsetgithub: 74413
2018-09-19 23:11:54vstinnersetstatus: open -> closed
resolution: out of date
stage: resolved
2017-05-02 10:15:21vstinnercreate