aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lua/nvim-lsp-installer/core/managers/pip3/init.lua9
-rw-r--r--lua/nvim-lsp-installer/core/spawn.lua2
-rw-r--r--tests/core/managers/pip3_spec.lua37
3 files changed, 20 insertions, 28 deletions
diff --git a/lua/nvim-lsp-installer/core/managers/pip3/init.lua b/lua/nvim-lsp-installer/core/managers/pip3/init.lua
index 0c442243..3b617745 100644
--- a/lua/nvim-lsp-installer/core/managers/pip3/init.lua
+++ b/lua/nvim-lsp-installer/core/managers/pip3/init.lua
@@ -61,8 +61,7 @@ function M.install(packages)
"-U",
settings.current.pip.install_args,
pkgs,
- env = M.env(ctx.cwd:get()), -- use venv env
- check_executable = false,
+ with_paths = { M.venv_path(ctx.cwd:get()) },
}
end)
:or_else_throw "Unable to create python3 venv environment."
@@ -95,8 +94,7 @@ function M.check_outdated_primary_package(receipt, install_dir)
"--outdated",
"--format=json",
cwd = install_dir,
- env = M.env(install_dir), -- use venv
- check_executable = false,
+ with_paths = { M.venv_path(install_dir) },
}):map_catching(function(result)
---@alias PipOutdatedPackage {name: string, version: string, latest_version: string}
---@type PipOutdatedPackage[]
@@ -132,8 +130,7 @@ function M.get_installed_primary_package_version(receipt, install_dir)
"list",
"--format=json",
cwd = install_dir,
- env = M.env(install_dir), -- use venv env
- check_executable = false,
+ with_paths = { M.venv_path(install_dir) },
}):map_catching(function(result)
local pip_packages = vim.json.decode(result.stdout)
local normalized_pip_package = M.normalize_package(receipt.primary_source.package)
diff --git a/lua/nvim-lsp-installer/core/spawn.lua b/lua/nvim-lsp-installer/core/spawn.lua
index 812848c3..17e2563f 100644
--- a/lua/nvim-lsp-installer/core/spawn.lua
+++ b/lua/nvim-lsp-installer/core/spawn.lua
@@ -87,7 +87,7 @@ setmetatable(spawn, {
local cmd = self._aliases[normalized_cmd] or normalized_cmd
- if args.with_paths == nil and args.check_executable ~= false and not is_executable(cmd) then
+ if (env and env.PATH) == nil and args.check_executable ~= false and not is_executable(cmd) then
return Failure({
stderr = ("%s is not executable"):format(cmd),
}, cmd)
diff --git a/tests/core/managers/pip3_spec.lua b/tests/core/managers/pip3_spec.lua
index 15a723d6..7a6a94c5 100644
--- a/tests/core/managers/pip3_spec.lua
+++ b/tests/core/managers/pip3_spec.lua
@@ -1,6 +1,5 @@
local mock = require "luassert.mock"
local spy = require "luassert.spy"
-local match = require "luassert.match"
local pip3 = require "nvim-lsp-installer.core.managers.pip3"
local Optional = require "nvim-lsp-installer.core.optional"
@@ -41,20 +40,19 @@ describe("pip3 manager", function()
"venv",
}
assert.spy(ctx.spawn.python).was_called(1)
- assert.spy(ctx.spawn.python).was_called_with(match.tbl_containing {
+ assert.spy(ctx.spawn.python).was_called_with {
"-m",
"pip",
"install",
"-U",
- match.table(),
- match.tbl_containing {
+ {},
+ {
"main-package==42.13.37",
"supporting-package",
"supporting-package2",
},
- env = match.is_table(),
- check_executable = false,
- })
+ with_paths = { "/tmp/install-dir/venv/bin" },
+ }
end)
)
@@ -106,16 +104,15 @@ describe("pip3 manager", function()
}
installer.run_installer(ctx, pip3.packages { "package" })
settings.set(settings._DEFAULT_SETTINGS)
- assert.spy(ctx.spawn.python).was_called_with(match.tbl_containing {
+ assert.spy(ctx.spawn.python).was_called_with {
"-m",
"pip",
"install",
"-U",
- match.tbl_containing { "--proxy", "http://localhost:8080" },
- match.tbl_containing { "package" },
- env = match.is_table(),
- check_executable = false,
- })
+ { "--proxy", "http://localhost:8080" },
+ { "package" },
+ with_paths = { "/tmp/install-dir/venv/bin" },
+ }
end)
)
@@ -165,15 +162,14 @@ describe("pip3 version check", function()
)
assert.spy(spawn.python).was_called(1)
- assert.spy(spawn.python).was_called_with(match.tbl_containing {
+ assert.spy(spawn.python).was_called_with {
"-m",
"pip",
"list",
"--format=json",
cwd = "/tmp/install/dir",
- env = match.table(),
- check_executable = false,
- })
+ with_paths = { "/tmp/install/dir/venv/bin" },
+ }
assert.is_true(result:is_success())
assert.equals("1.3.0", result:get_or_nil())
@@ -203,16 +199,15 @@ describe("pip3 version check", function()
)
assert.spy(spawn.python).was_called(1)
- assert.spy(spawn.python).was_called_with(match.tbl_containing {
+ assert.spy(spawn.python).was_called_with {
"-m",
"pip",
"list",
"--outdated",
"--format=json",
cwd = "/tmp/install/dir",
- env = match.table(),
- check_executable = false,
- })
+ with_paths = { "/tmp/install/dir/venv/bin" },
+ }
assert.is_true(result:is_success())
assert.same({
name = "python-lsp-server",