#!/usr/bin/env bash
set -euo pipefail
# shellcheck source-path=SCRIPTDIR
source "$(dirname "$0")/assert.sh"

export MISE_EXPERIMENTAL=1
export MISE_PYTHON_DEFAULT_PACKAGES_FILE="$ROOT/e2e/.default-python-packages"

cat >.e2e.mise.toml <<EOF
[env._.python]
venv = {path = "{{env.MISE_DATA_DIR}}/venv", create=true}
[tools]
python = "{{exec(command='echo 3.12.0')}}"
EOF

mise i
#mise x -- python -m venv "$MISE_DATA_DIR/venv"
assert_contains "mise x python@3.12.0 -- python --version" "Python 3.12.0"
assert_contains "mise env -s bash | grep VIRTUAL_ENV" "$MISE_DATA_DIR/venv"
assert "mise x -- which python" "$MISE_DATA_DIR/venv/bin/python"

# verify nested virtualenv is used
mkdir -p subdir
cat >subdir/.e2e.mise.toml <<EOF
[env._.python]
venv = {path = "{{env.MISE_DATA_DIR}}/subvenv", create=true}
[tools]
python = "{{exec(command='echo 3.12.0')}}"
EOF

cd subdir
mise i
assert_contains "mise x python@3.12.0 -- python --version" "Python 3.12.0"
assert_contains "mise env -s bash | grep VIRTUAL_ENV" "$MISE_DATA_DIR/subvenv"
assert "mise x -- which python" "$MISE_DATA_DIR/subvenv/bin/python"

rm -rf subdir

if [ "${TEST_ALL:-}" != 1 ]; then
	exit
fi

export MISE_ALL_COMPILE=1
mise i python -f
assert_contains "mise x python@3.12.0 -- python --version" "Python 3.12"
