mirror of
https://github.com/xonsh/xonsh.git
synced 2025-03-04 08:24:40 +01:00
47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
![]() |
import sys
|
||
|
from pathlib import Path
|
||
|
from subprocess import check_call, check_output
|
||
|
|
||
|
from tests.tools import ON_WINDOWS
|
||
|
|
||
|
|
||
|
def test_xonsh_activator(tmp_path):
|
||
|
# Create virtualenv
|
||
|
venv_dir = tmp_path / "venv"
|
||
|
assert b"XonshActivator" in check_output(
|
||
|
[sys.executable, "-m", "virtualenv", str(venv_dir)]
|
||
|
)
|
||
|
assert venv_dir.is_dir()
|
||
|
|
||
|
# Check activation script created
|
||
|
if ON_WINDOWS:
|
||
|
bin_path = venv_dir / "Scripts"
|
||
|
else:
|
||
|
bin_path = venv_dir / "bin"
|
||
|
activate_path = bin_path / "activate.xsh"
|
||
|
assert activate_path.is_file()
|
||
|
|
||
|
# Sanity
|
||
|
original_python = check_output(
|
||
|
[sys.executable, "-m", "xonsh", "-c", "which python"]
|
||
|
).decode()
|
||
|
assert Path(original_python).parent != bin_path
|
||
|
|
||
|
# Activate
|
||
|
venv_python = check_output(
|
||
|
[sys.executable, "-m", "xonsh", "-c", f"source {activate_path}; which python"]
|
||
|
).decode()
|
||
|
assert Path(venv_python).parent == bin_path
|
||
|
|
||
|
# Deactivate
|
||
|
deactivated_python = check_output(
|
||
|
[
|
||
|
sys.executable,
|
||
|
"-m",
|
||
|
"xonsh",
|
||
|
"-c",
|
||
|
f"source {activate_path}; deactivate; which python",
|
||
|
]
|
||
|
).decode()
|
||
|
assert deactivated_python == original_python
|