summaryrefslogtreecommitdiffstats
path: root/python/mozlint/test/test_editor.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /python/mozlint/test/test_editor.py
parentInitial commit. (diff)
downloadfirefox-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/mozlint/test/test_editor.py')
-rw-r--r--python/mozlint/test/test_editor.py92
1 files changed, 92 insertions, 0 deletions
diff --git a/python/mozlint/test/test_editor.py b/python/mozlint/test/test_editor.py
new file mode 100644
index 0000000000..7a15a613a6
--- /dev/null
+++ b/python/mozlint/test/test_editor.py
@@ -0,0 +1,92 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import os
+import subprocess
+
+import mozunit
+import pytest
+
+from mozlint import editor
+from mozlint.result import Issue, ResultSummary
+
+here = os.path.abspath(os.path.dirname(__file__))
+
+
+@pytest.fixture
+def capture_commands(monkeypatch):
+ def inner(commands):
+ def fake_subprocess_call(*args, **kwargs):
+ commands.append(args[0])
+
+ monkeypatch.setattr(subprocess, "call", fake_subprocess_call)
+
+ return inner
+
+
+@pytest.fixture
+def result():
+ result = ResultSummary("/fake/root")
+ result.issues["foo.py"].extend(
+ [
+ Issue(
+ linter="no-foobar",
+ path="foo.py",
+ lineno=1,
+ message="Oh no!",
+ ),
+ Issue(
+ linter="no-foobar",
+ path="foo.py",
+ lineno=3,
+ column=10,
+ message="To Yuma!",
+ ),
+ ]
+ )
+ return result
+
+
+def test_no_editor(monkeypatch, capture_commands, result):
+ commands = []
+ capture_commands(commands)
+
+ monkeypatch.delenv("EDITOR", raising=False)
+ editor.edit_issues(result)
+ assert commands == []
+
+
+def test_no_issues(monkeypatch, capture_commands, result):
+ commands = []
+ capture_commands(commands)
+
+ monkeypatch.setenv("EDITOR", "generic")
+ result.issues = {}
+ editor.edit_issues(result)
+ assert commands == []
+
+
+def test_vim(monkeypatch, capture_commands, result):
+ commands = []
+ capture_commands(commands)
+
+ monkeypatch.setenv("EDITOR", "vim")
+ editor.edit_issues(result)
+ assert len(commands) == 1
+ assert commands[0][0] == "vim"
+
+
+def test_generic(monkeypatch, capture_commands, result):
+ commands = []
+ capture_commands(commands)
+
+ monkeypatch.setenv("EDITOR", "generic")
+ editor.edit_issues(result)
+ assert len(commands) == len(result.issues)
+ assert all(c[0] == "generic" for c in commands)
+ assert all("foo.py" in c for c in commands)
+
+
+if __name__ == "__main__":
+ mozunit.main()