summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspetafree <6402127+spetafree@users.noreply.github.com>2020-03-03 10:55:47 +0200
committerGitHub <noreply@github.com>2020-03-03 08:55:47 +0000
commitdd37c7d2af8a21026f4d4b7f43142e4e1e0faf86 (patch)
treed772e034adf36131ed63d5ecdd6708ea960eaaaf
parent7649968fcc673336e510a18d4d1d20feef48fe4b (diff)
downloadvirtualenv-dd37c7d2af8a21026f4d4b7f43142e4e1e0faf86.tar.gz
Default prompt of environment name in batch shell (#1679)
* Default prompt of environment name in batch shell * Handle batch prompt in activate.bat * change test folder name to aviod bat escapes * run activation tests with and without prompt * test for correct prompt in batch (only, for now) * Try to normalize path in batch tests * update description * Update 1679.bugfix.rst * Update conftest.py * Update conftest.py Signed-off-by: Bernat Gabor <bgabor8@bloomberg.net> * better names Signed-off-by: Bernat Gabor <bgabor8@bloomberg.net> Co-authored-by: Bernát Gábor <gaborjbernat@gmail.com>
-rw-r--r--docs/changelog/1679.bugfix.rst1
-rw-r--r--src/virtualenv/activation/batch/activate.bat7
-rw-r--r--tests/unit/activation/conftest.py9
3 files changed, 13 insertions, 4 deletions
diff --git a/docs/changelog/1679.bugfix.rst b/docs/changelog/1679.bugfix.rst
new file mode 100644
index 0000000..b42782b
--- /dev/null
+++ b/docs/changelog/1679.bugfix.rst
@@ -0,0 +1 @@
+Fix Batch activation script shell prompt to display environment name by default - by :user:`spetafree`.
diff --git a/src/virtualenv/activation/batch/activate.bat b/src/virtualenv/activation/batch/activate.bat
index 96e835b..c0949ba 100644
--- a/src/virtualenv/activation/batch/activate.bat
+++ b/src/virtualenv/activation/batch/activate.bat
@@ -13,7 +13,12 @@ if defined _OLD_VIRTUAL_PROMPT (
)
)
if not defined VIRTUAL_ENV_DISABLE_PROMPT (
- set "PROMPT=__VIRTUAL_PROMPT__%PROMPT%"
+ set "ENV_PROMPT=__VIRTUAL_PROMPT__"
+ if NOT DEFINED ENV_PROMPT (
+ for %%d in ("%VIRTUAL_ENV%") do set "ENV_PROMPT=(%%~nxd) "
+ )
+ )
+ set "PROMPT=%ENV_PROMPT%%PROMPT%"
)
REM Don't use () to avoid problems with them in %PATH%
diff --git a/tests/unit/activation/conftest.py b/tests/unit/activation/conftest.py
index 712ee14..c016b40 100644
--- a/tests/unit/activation/conftest.py
+++ b/tests/unit/activation/conftest.py
@@ -205,10 +205,13 @@ def raise_on_non_source_class():
return RaiseOnNonSourceCall
-@pytest.fixture(scope="session")
-def activation_python(tmp_path_factory, special_char_name, current_fastest):
+@pytest.fixture(scope="session", params=[True, False], ids=["with_prompt", "no_prompt"])
+def activation_python(request, tmp_path_factory, special_char_name, current_fastest):
dest = os.path.join(ensure_text(str(tmp_path_factory.mktemp("activation-tester-env"))), special_char_name)
- session = cli_run(["--without-pip", dest, "--prompt", special_char_name, "--creator", current_fastest, "-vv"])
+ cmd = ["--without-pip", dest, "--creator", current_fastest, "-vv"]
+ if request.param:
+ cmd += ["--prompt", special_char_name]
+ session = cli_run(cmd)
pydoc_test = session.creator.purelib / "pydoc_test.py"
pydoc_test.write_text('"""This is pydoc_test.py"""')
yield session