mirror of
https://github.com/python/cpython.git
synced 2026-06-25 02:20:56 +00:00
[3.15] gh-149701: Fully silence potential hash -r error (GH-149702) (GH-149757)
(cherry picked from commit cd6096887e)
This commit is contained in:
parent
15a597e9ba
commit
4e369c1dea
3 changed files with 23 additions and 2 deletions
|
|
@ -656,6 +656,26 @@ def test_deactivate_with_strict_bash_opts(self):
|
|||
self.assertEqual(out, "".encode())
|
||||
self.assertEqual(err, "".encode())
|
||||
|
||||
# gh-149701: Test exit code is zero even when hashing is disabled
|
||||
@unittest.skipIf(os.name == 'nt', 'not relevant on Windows')
|
||||
def test_deactivate_with_strict_bash_opts_and_hashing_disabled(self):
|
||||
bash = shutil.which("bash")
|
||||
if bash is None:
|
||||
self.skipTest("bash required for this test")
|
||||
rmtree(self.env_dir)
|
||||
builder = venv.EnvBuilder(clear=True)
|
||||
builder.create(self.env_dir)
|
||||
activate = os.path.join(self.env_dir, self.bindir, "activate")
|
||||
test_script = os.path.join(self.env_dir, "test_hash_disabled.sh")
|
||||
with open(test_script, "w") as f:
|
||||
f.write("set -euo pipefail\n"
|
||||
"set +h\n" # disable hashing
|
||||
f"source {activate}\n"
|
||||
"deactivate")
|
||||
out, err = check_output([bash, test_script])
|
||||
self.assertEqual(out, "".encode())
|
||||
self.assertEqual(err, "".encode())
|
||||
|
||||
|
||||
@unittest.skipUnless(sys.platform == 'darwin', 'only relevant on macOS')
|
||||
def test_macos_env(self):
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ deactivate () {
|
|||
# Call hash to forget past locations. Without forgetting
|
||||
# past locations the $PATH changes we made may not be respected.
|
||||
# See "man bash" for more details. hash is usually a builtin of your shell
|
||||
hash -r 2> /dev/null
|
||||
hash -r 2> /dev/null || true
|
||||
|
||||
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
|
||||
PS1="${_OLD_VIRTUAL_PS1:-}"
|
||||
|
|
@ -73,4 +73,4 @@ fi
|
|||
|
||||
# Call hash to forget past commands. Without forgetting
|
||||
# past commands the $PATH changes we made may not be respected
|
||||
hash -r 2> /dev/null
|
||||
hash -r 2> /dev/null || true
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
Fix bad return code from Lib/venv/bin/activate if hashing is disabled
|
||||
Loading…
Add table
Add a link
Reference in a new issue