diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /python/mozperftest/mozperftest/tests/test_fzf.py | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'python/mozperftest/mozperftest/tests/test_fzf.py')
-rw-r--r-- | python/mozperftest/mozperftest/tests/test_fzf.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/python/mozperftest/mozperftest/tests/test_fzf.py b/python/mozperftest/mozperftest/tests/test_fzf.py new file mode 100644 index 0000000000..7fdd9a87a4 --- /dev/null +++ b/python/mozperftest/mozperftest/tests/test_fzf.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python +import json +from pathlib import Path +from unittest import mock + +import mozunit + +from mozperftest.fzf.fzf import select +from mozperftest.fzf.preview import main +from mozperftest.tests.support import EXAMPLE_TEST, temp_file +from mozperftest.utils import silence + + +class Fzf: + def __init__(self, cmd, *args, **kw): + self.cmd = cmd + + def communicate(self, *args): + 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}" + test_objects = [{"path": str(content)}] + cache = Path(Path.home(), ".mozbuild", ".perftestfuzzy") + with cache.open("w") as f: + f.write(json.dumps(test_objects)) + + with temp_file(content=str(line)) as tasklist, silence() as out: + main(args=["-t", tasklist]) + + stdout, __ = out + stdout.seek(0) + assert ":owner: Performance Testing Team" in stdout.read() + + +if __name__ == "__main__": + mozunit.main() |