Skip to content

Commit 9f37b46

Browse files
committed
Fix goget installer resolution and relink seeded Playwright
1 parent 6b5afc0 commit 9f37b46

2 files changed

Lines changed: 28 additions & 1 deletion

File tree

abx_pkg/binprovider_goget.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def load_PATH_from_go_env(self) -> Self:
8282
bin_dir = self.bin_dir
8383
assert bin_dir is not None
8484
if self.install_root != DEFAULT_GOPATH or "bin_dir" in self.model_fields_set:
85-
self.PATH = self._merge_PATH(bin_dir)
85+
self.PATH = self._merge_PATH(bin_dir, PATH=self.PATH)
8686
else:
8787
self.PATH = self._merge_PATH(bin_dir, PATH=self.PATH)
8888
return self
@@ -234,6 +234,21 @@ def default_version_handler(
234234
abspath = abspath or self.get_abspath(bin_name, quiet=True)
235235
if not abspath:
236236
return None
237+
if str(bin_name) == self.INSTALLER_BIN:
238+
version_provider = (
239+
self.get_provider_with_overrides(dry_run=False)
240+
if self.dry_run
241+
else self
242+
)
243+
proc = version_provider.exec(
244+
bin_name=abspath,
245+
cmd=["version"],
246+
timeout=timeout,
247+
quiet=True,
248+
)
249+
if proc.returncode != 0:
250+
return None
251+
return SemVer.parse(proc.stdout.strip() or proc.stderr.strip())
237252
try:
238253
installer_abspath = self.INSTALLER_BINARY(no_cache=no_cache).loaded_abspath
239254
assert installer_abspath

tests/test_playwrightprovider.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,18 @@ def copy_seeded_playwright_root(
3232
symlinks=True,
3333
copy_function=os.link,
3434
)
35+
copied_bin_dir = install_root / "bin"
36+
if not copied_bin_dir.is_dir():
37+
return
38+
for link_path in copied_bin_dir.iterdir():
39+
if not link_path.is_symlink():
40+
continue
41+
link_target = link_path.resolve(strict=False)
42+
if seeded_playwright_root.resolve() not in link_target.parents:
43+
continue
44+
relative_target = link_target.relative_to(seeded_playwright_root.resolve())
45+
link_path.unlink()
46+
link_path.symlink_to(install_root / relative_target)
3547

3648
def test_chromium_install_puts_real_browser_into_managed_bin_dir(
3749
self,

0 commit comments

Comments
 (0)