Bug 1688995 - Fall back to default PATH if fzf doesn't exist in mozbuild r=sparky

Differential Revision: https://phabricator.services.mozilla.com/D103115
This commit is contained in:
Sean Feng 2021-02-16 18:11:38 +00:00
parent c544f2ee27
commit 2502c7c5dd
2 changed files with 20 additions and 1 deletions

View File

@ -93,7 +93,13 @@ def select(test_objects):
return f"[{flavor}] {path.name} in {location}"
candidate_tasks = [_display(t) for t in test_objects]
fzf_bin = find_executable("fzf", str(Path(get_state_dir(), "fzf", "bin")))
fzf_bin = find_executable(
"fzf", str(Path(get_state_dir(), "fzf", "bin"))
) or find_executable("fzf")
if not fzf_bin:
raise AssertionError("Unable to find fzf")
key_shortcuts = [k + ":" + v for k, v in fzf_shortcuts.items()]
base_cmd = [

View File

@ -18,13 +18,26 @@ class Fzf:
return "query\n" + args[0], "stderr"
def fzf_executable(*args):
return None if len(args) == 2 else "fzf"
@mock.patch("subprocess.Popen", new=Fzf)
@mock.patch("mozperftest.fzf.fzf.find_executable", new=fzf_executable)
def test_select(*mocked):
test_objects = [{"path": EXAMPLE_TEST}]
selection = select(test_objects)
assert len(selection) == 1
@mock.patch("subprocess.Popen", new=Fzf)
@mock.patch("mozperftest.fzf.fzf.find_executable", new=fzf_executable)
def test_find_fzf_executable(*mocked):
test_objects = [{"path": EXAMPLE_TEST}]
selection = select(test_objects)
assert len(selection) == 1
def test_preview():
content = Path(EXAMPLE_TEST)
line = f"[bt][sometag] {content.name} in {content.parent}"