Skip to content

Commit

Permalink
Avoid spurious "location may have moved" on Windows
Browse files Browse the repository at this point in the history
The main case where this happens is when tempfile.gettempdir() has
a component in it that uses an 8.3-encoded path, e.g.,
C:\Users\Administrator\... -> C:\Users\ADMINI~1\...

This is a workaround for python/cpython#90329. I call realpath only
once, when the venv is created, and not on any paths inside the
venv, to make it less likely this masks the problems the warning is
meant for. (For example, if Scripts, or python.exe in it, produced
this even with the venv created as it is now, then that may indicte
an actual problem.)

Note that copying python.exe from Scripts to one level up in the
venv, and changing its name to bash.exe to use it to simulate the
bash.exe impostor, as is done in test_hook_uses_shell_not_from_cwd,
should not (and does not) produce this warning. If that ever starts
to do so, then that should be examined as a sign of brittleness.
  • Loading branch information
EliahKagan committed Jan 9, 2024
1 parent a42ea0a commit f44524a
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions test/lib/helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -400,8 +400,12 @@ class VirtualEnvironment:
__slots__ = ("_env_dir",)

def __init__(self, env_dir, *, with_pip):
self._env_dir = env_dir
venv.create(env_dir, symlinks=(os.name != "nt"), with_pip=with_pip)
if os.name == "nt":
self._env_dir = osp.realpath(env_dir)
venv.create(self.env_dir, symlinks=False, with_pip=with_pip)
else:
self._env_dir = env_dir
venv.create(self.env_dir, symlinks=True, with_pip=with_pip)

@property
def env_dir(self):
Expand Down

0 comments on commit f44524a

Please sign in to comment.