@@ -658,6 +658,26 @@ def test_deactivate_with_strict_bash_opts(self):
658658 self .assertEqual (out , "" .encode ())
659659 self .assertEqual (err , "" .encode ())
660660
661+ # gh-149701: Test exit code is zero even when hashing is disabled
662+ @unittest .skipIf (os .name == 'nt' , 'not relevant on Windows' )
663+ def test_deactivate_with_strict_bash_opts_and_hashing_disabled (self ):
664+ bash = shutil .which ("bash" )
665+ if bash is None :
666+ self .skipTest ("bash required for this test" )
667+ rmtree (self .env_dir )
668+ builder = venv .EnvBuilder (clear = True )
669+ builder .create (self .env_dir )
670+ activate = os .path .join (self .env_dir , self .bindir , "activate" )
671+ test_script = os .path .join (self .env_dir , "test_hash_disabled.sh" )
672+ with open (test_script , "w" ) as f :
673+ f .write ("set -euo pipefail\n "
674+ "set +h\n " # disable hashing
675+ f"source { activate } \n "
676+ "deactivate" )
677+ out , err = check_output ([bash , test_script ])
678+ self .assertEqual (out , "" .encode ())
679+ self .assertEqual (err , "" .encode ())
680+
661681
662682 @unittest .skipUnless (sys .platform == 'darwin' , 'only relevant on macOS' )
663683 def test_macos_env (self ):
0 commit comments