Skip to content

Commit

Permalink
fix(pip3): expand python3_host_prog path (#519)
Browse files Browse the repository at this point in the history
Fixes #505.
  • Loading branch information
williamboman committed Oct 6, 2022
1 parent 97b1dc9 commit e93a299
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 3 deletions.
10 changes: 8 additions & 2 deletions lua/mason-core/managers/pip3/init.lua
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local _ = require "mason-core.functional"
local a = require "mason-core.async"
local settings = require "mason.settings"
local path = require "mason-core.path"
local platform = require "mason-core.platform"
Expand Down Expand Up @@ -44,8 +45,13 @@ function M.install(packages)
pkgs[1] = ("%s==%s"):format(pkgs[1], version)
end)

local executables = platform.is.win and _.list_not_nil(vim.g.python3_host_prog, "python", "python3")
or _.list_not_nil(vim.g.python3_host_prog, "python3", "python")
if vim.in_fast_event() then
a.scheduler()
end

local executables = platform.is.win
and _.list_not_nil(vim.g.python3_host_prog and vim.fn.expand(vim.g.python3_host_prog), "python", "python3")
or _.list_not_nil(vim.g.python3_host_prog and vim.fn.expand(vim.g.python3_host_prog), "python3", "python")

-- pip3 will hardcode the full path to venv executables, so we need to promote cwd to make sure pip uses the final destination path.
ctx:promote_cwd()
Expand Down
7 changes: 6 additions & 1 deletion lua/mason/health/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,12 @@ function M.check()
if vim.g.python3_host_prog then
table.insert(
checks,
check { cmd = vim.g.python3_host_prog, args = { "--version" }, name = "python3_host_prog", relaxed = true }
check {
cmd = vim.fn.expand(vim.g.python3_host_prog),
args = { "--version" },
name = "python3_host_prog",
relaxed = true,
}
)
end

Expand Down
17 changes: 17 additions & 0 deletions tests/mason-core/managers/pip3_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ local mock = require "luassert.mock"
local spy = require "luassert.spy"
local path = require "mason-core.path"

local a = require "mason-core.async"
local pip3 = require "mason-core.managers.pip3"
local installer = require "mason-core.installer"
local Result = require "mason-core.result"
Expand Down Expand Up @@ -86,6 +87,22 @@ describe("pip3 manager", function()
end)
)

it(
"should expand python3_host_prog path",
async_test(function()
vim.g.python3_host_prog = "~/python3"
local handle = InstallHandleGenerator "dummy"
local ctx = InstallContextGenerator(handle)
ctx.spawn.python = spy.new(mockx.returns {})
ctx.spawn[vim.env.HOME .. "/python3"] = spy.new(mockx.returns {})

installer.run_installer(ctx, pip3.packages { "package" })
a.scheduler()
vim.g.python3_host_prog = nil
assert.spy(ctx.spawn[vim.env.HOME .. "/python3"]).was_called(1)
end)
)

it(
"should use install_args from settings",
async_test(function()
Expand Down

0 comments on commit e93a299

Please sign in to comment.