aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2024-01-21 18:47:59 +0100
committerGitHub <noreply@github.com>2024-01-21 18:47:59 +0100
commitbce96d2fd483e71826728c6f9ac721fc9dd7d2cf (patch)
treef5e819529129791740c855c47c1b0675c15bfd63
parentfix(ui): don't indent empty lines (#1597) (diff)
downloadmason-bce96d2fd483e71826728c6f9ac721fc9dd7d2cf.tar
mason-bce96d2fd483e71826728c6f9ac721fc9dd7d2cf.tar.gz
mason-bce96d2fd483e71826728c6f9ac721fc9dd7d2cf.tar.bz2
mason-bce96d2fd483e71826728c6f9ac721fc9dd7d2cf.tar.lz
mason-bce96d2fd483e71826728c6f9ac721fc9dd7d2cf.tar.xz
mason-bce96d2fd483e71826728c6f9ac721fc9dd7d2cf.tar.zst
mason-bce96d2fd483e71826728c6f9ac721fc9dd7d2cf.zip
feat: don't use vim.g.python3_host_prog as a candidate for python (#1606)
This is inconsistent with how other system dependencies are resolved and is not documented anywhere.
-rw-r--r--lua/mason-core/installer/managers/pypi.lua8
-rw-r--r--lua/mason-core/managers/pip3/init.lua4
-rw-r--r--lua/mason/health.lua18
-rw-r--r--tests/mason-core/managers/pip3_spec.lua40
4 files changed, 2 insertions, 68 deletions
diff --git a/lua/mason-core/installer/managers/pypi.lua b/lua/mason-core/installer/managers/pypi.lua
index 0f3de1fb..7c0e5bb9 100644
--- a/lua/mason-core/installer/managers/pypi.lua
+++ b/lua/mason-core/installer/managers/pypi.lua
@@ -72,13 +72,7 @@ function M.init(opts)
a.scheduler()
- 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")
+ local executables = platform.is.win and { "python", "python3" } or { "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()
diff --git a/lua/mason-core/managers/pip3/init.lua b/lua/mason-core/managers/pip3/init.lua
index 36ad6fc7..813bc9ea 100644
--- a/lua/mason-core/managers/pip3/init.lua
+++ b/lua/mason-core/managers/pip3/init.lua
@@ -48,9 +48,7 @@ function M.install(packages)
a.scheduler()
- 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")
+ local executables = platform.is.win and { "python", "python3" } or { "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()
diff --git a/lua/mason/health.lua b/lua/mason/health.lua
index 190a6972..1f8a225f 100644
--- a/lua/mason/health.lua
+++ b/lua/mason/health.lua
@@ -280,24 +280,6 @@ local function check_languages()
}
end
end,
- function()
- a.scheduler()
- if vim.g.python3_host_prog then
- check {
- cmd = vim.fn.expand(vim.g.python3_host_prog),
- args = { "--version" },
- name = "python3_host_prog",
- relaxed = true,
- }
- a.scheduler()
- check {
- cmd = vim.fn.expand(vim.g.python3_host_prog),
- args = { "-m", "pip", "--version" },
- name = "python3_host_prog pip",
- relaxed = true,
- }
- end
- end,
}
end
diff --git a/tests/mason-core/managers/pip3_spec.lua b/tests/mason-core/managers/pip3_spec.lua
index cf7aff9b..9ad8e1d8 100644
--- a/tests/mason-core/managers/pip3_spec.lua
+++ b/tests/mason-core/managers/pip3_spec.lua
@@ -63,62 +63,22 @@ describe("pip3 manager", function()
it(
"should exhaust python3 executable candidates if all fail",
async_test(function()
- vim.g.python3_host_prog = "/my/python3"
local handle = InstallHandleGenerator "dummy"
local ctx = InstallContextGenerator(handle)
ctx.spawn.python3 = spy.new(mockx.throws())
ctx.spawn.python = spy.new(mockx.throws())
- ctx.spawn[vim.g.python3_host_prog] = spy.new(mockx.throws())
local err = assert.has_error(function()
installer.prepare_installer(ctx):get_or_throw()
installer.exec_in_context(ctx, pip3.packages { "package" })
end)
- vim.g.python3_host_prog = nil
assert.equals("Unable to create python3 venv environment.", err)
- assert.spy(ctx.spawn["/my/python3"]).was_called(1)
assert.spy(ctx.spawn.python3).was_called(1)
assert.spy(ctx.spawn.python).was_called(1)
end)
)
it(
- "should not exhaust python3 executable if one succeeds",
- async_test(function()
- vim.g.python3_host_prog = "/my/python3"
- local handle = InstallHandleGenerator "dummy"
- local ctx = InstallContextGenerator(handle)
- ctx.spawn.python3 = spy.new(mockx.throws())
- ctx.spawn.python = spy.new(mockx.returns {})
- ctx.spawn[vim.g.python3_host_prog] = spy.new(mockx.returns {})
-
- installer.prepare_installer(ctx):get_or_throw()
- installer.exec_in_context(ctx, pip3.packages { "package" })
- vim.g.python3_host_prog = nil
- assert.spy(ctx.spawn.python3).was_called(0)
- assert.spy(ctx.spawn.python).was_called(1)
- assert.spy(ctx.spawn["/my/python3"]).was_called(1)
- 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.prepare_installer(ctx):get_or_throw()
- installer.exec_in_context(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()
settings.set {