File tree 2 files changed +14
-1
lines changed
2 files changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -1072,7 +1072,8 @@ def get_base_prefix(cls) -> Path:
1072
1072
def generate_env_name (cls , name : str , cwd : str ) -> str :
1073
1073
name = name .lower ()
1074
1074
sanitized_name = re .sub (r'[ $`!*@"\\\r\n\t]' , "_" , name )[:42 ]
1075
- h = hashlib .sha256 (encode (cwd )).digest ()
1075
+ normalized_cwd = os .path .normcase (cwd )
1076
+ h = hashlib .sha256 (encode (normalized_cwd )).digest ()
1076
1077
h = base64 .urlsafe_b64encode (h ).decode ()[:8 ]
1077
1078
1078
1079
return f"{ sanitized_name } -{ h } "
Original file line number Diff line number Diff line change 2
2
import shutil
3
3
import subprocess
4
4
import sys
5
+ import tempfile
5
6
6
7
from pathlib import Path
7
8
from typing import Any
@@ -1120,3 +1121,14 @@ def test_create_venv_accepts_fallback_version_w_nonzero_patchlevel(
1120
1121
with_setuptools = True ,
1121
1122
with_wheel = True ,
1122
1123
)
1124
+
1125
+
1126
+ def test_generate_env_name_ignores_case_for_case_insensitive_fs (tmp_dir ):
1127
+ venv_name1 = EnvManager .generate_env_name ("simple-project" , "MyDiR" )
1128
+ venv_name2 = EnvManager .generate_env_name ("simple-project" , "mYdIr" )
1129
+ with tempfile .NamedTemporaryFile (prefix = "TmP" ) as tmp_file :
1130
+ is_case_insensitive_fs = os .path .exists (tmp_file .name .lower ())
1131
+ if is_case_insensitive_fs :
1132
+ assert venv_name1 == venv_name2
1133
+ else :
1134
+ assert venv_name1 != venv_name2
You can’t perform that action at this time.
0 commit comments