diff --git a/libexec/pyenv-version-name b/libexec/pyenv-version-name index 73093b31..b3866dbd 100755 --- a/libexec/pyenv-version-name +++ b/libexec/pyenv-version-name @@ -32,8 +32,12 @@ OLDIFS="$IFS" for version in ${PYENV_VERSION}; do # Remove the explicit 'python-' prefix from versions like 'python-3.12'. normalised_version="${version#python-}" - if version_exists "${normalised_version}" || [ "$version" = "system" ]; then + if version_exists "${version}" || [ "$version" = "system" ]; then + versions=("${versions[@]}" "${version}") + elif version_exists "${normalised_version}"; then versions=("${versions[@]}" "${normalised_version}") + elif resolved_version="$(pyenv-latest -b "${version}")"; then + versions=("${versions[@]}" "${resolved_version}") elif resolved_version="$(pyenv-latest -b "${normalised_version}")"; then versions=("${versions[@]}" "${resolved_version}") else diff --git a/test/version-name.bats b/test/version-name.bats index e3c9a6a4..720f6c86 100644 --- a/test/version-name.bats +++ b/test/version-name.bats @@ -127,3 +127,10 @@ OUT assert_success assert_output "3.12.6" } + +@test "pyenv version started by python-" { + create_version "python-3.12.6" + PYENV_VERSION="python-3.12.6" run pyenv-version-name + assert_success + assert_output "python-3.12.6" +}