summaryrefslogtreecommitdiffstats
path: root/tools/lint/test
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:33 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:33 +0000
commit086c044dc34dfc0f74fbe41f4ecb402b2cd34884 (patch)
treea4f824bd33cb075dd5aa3eb5a0a94af221bbe83a /tools/lint/test
parentAdding debian version 124.0.1-1. (diff)
downloadfirefox-086c044dc34dfc0f74fbe41f4ecb402b2cd34884.tar.xz
firefox-086c044dc34dfc0f74fbe41f4ecb402b2cd34884.zip
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tools/lint/test')
-rw-r--r--tools/lint/test/python.toml2
-rw-r--r--tools/lint/test/test_ignorefile.py170
2 files changed, 172 insertions, 0 deletions
diff --git a/tools/lint/test/python.toml b/tools/lint/test/python.toml
index 65036449a8..2f010c9043 100644
--- a/tools/lint/test/python.toml
+++ b/tools/lint/test/python.toml
@@ -26,6 +26,8 @@ skip-if = ["os == 'win'"]
["test_fluent_lint.py"]
+["test_ignorefile.py"]
+
["test_lintpref.py"]
["test_manifest_alpha.py"]
diff --git a/tools/lint/test/test_ignorefile.py b/tools/lint/test/test_ignorefile.py
new file mode 100644
index 0000000000..502096c5b9
--- /dev/null
+++ b/tools/lint/test/test_ignorefile.py
@@ -0,0 +1,170 @@
+# 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 mozunit
+
+LINTER = "ignorefile"
+
+
+def test_same(lint, create_temp_file):
+ hgContents = """
+\\.pyc$
+\\.pyo$
+ """
+ gitContents = """
+*.pyc
+*.pyo
+ """
+
+ path = create_temp_file(hgContents, ".hgignore")
+ create_temp_file(gitContents, ".gitignore")
+
+ results = lint([path])
+
+ assert len(results) == 0
+
+
+def test_replace(lint, create_temp_file):
+ hgContents = """
+\\.pyc$
+\\.pyo$
+ """
+ gitContents = """
+*.pyc
+*.pyp
+ """
+
+ path = create_temp_file(hgContents, ".hgignore")
+ path2 = create_temp_file(gitContents, ".gitignore")
+
+ results = lint([path])
+
+ assert len(results) == 1
+ assert results[0].level == "error"
+ assert results[0].lineno == 3
+ assert (
+ results[0].message
+ == 'Pattern mismatch: "\\.pyo$" in .hgignore vs "*.pyp" in .gitignore'
+ )
+
+ results = lint([path2])
+
+ assert len(results) == 1
+ assert results[0].level == "error"
+ assert results[0].lineno == 3
+ assert (
+ results[0].message
+ == 'Pattern mismatch: "*.pyp" in .gitignore vs "\\.pyo$" in .hgignore'
+ )
+
+
+def test_insert(lint, create_temp_file):
+ hgContents = """
+\\.pyc$
+\\.pyo$
+ """
+ gitContents = """
+*.pyc
+foo
+*.pyo
+ """
+
+ path = create_temp_file(hgContents, ".hgignore")
+ create_temp_file(gitContents, ".gitignore")
+
+ results = lint([path])
+
+ assert len(results) == 1
+ assert results[0].level == "error"
+ assert results[0].lineno == 3
+ assert results[0].message == 'Pattern "foo" not found in .hgignore'
+
+
+def test_delete(lint, create_temp_file):
+ hgContents = """
+\\.pyc$
+foo
+\\.pyo$
+ """
+ gitContents = """
+*.pyc
+*.pyo
+ """
+
+ path = create_temp_file(hgContents, ".hgignore")
+ create_temp_file(gitContents, ".gitignore")
+
+ results = lint([path])
+
+ assert len(results) == 1
+ assert results[0].level == "error"
+ assert results[0].lineno == 3
+ assert results[0].message == 'Pattern "foo" not found in .gitignore'
+
+
+def test_ignore(lint, create_temp_file):
+ hgContents = """
+\\.pyc$
+# lint-ignore-next-line: hg-only
+foo
+\\.pyo$
+# lint-ignore-next-line: syntax-difference
+(file1|file2)
+diff1
+ """
+ gitContents = """
+*.pyc
+*.pyo
+# lint-ignore-next-line: git-only
+bar
+# lint-ignore-next-line: syntax-difference
+file1
+# lint-ignore-next-line: syntax-difference
+file2
+diff2
+ """
+
+ path = create_temp_file(hgContents, ".hgignore")
+ create_temp_file(gitContents, ".gitignore")
+
+ results = lint([path])
+
+ # Only the line without lint-ignore-next-line should be reported
+ assert len(results) == 1
+ assert results[0].level == "error"
+ assert results[0].lineno == 8
+ assert (
+ results[0].message
+ == 'Pattern mismatch: "diff1" in .hgignore vs "diff2" in .gitignore'
+ )
+
+
+def test_invalid_syntax(lint, create_temp_file):
+ hgContents = """
+\\.pyc$
+# lint-ignore-next-line: random
+foo
+\\.pyo$
+ """
+ gitContents = """
+*.pyc
+*.pyo
+ """
+
+ path = create_temp_file(hgContents, ".hgignore")
+ create_temp_file(gitContents, ".gitignore")
+
+ results = lint([path])
+
+ assert len(results) == 2
+ assert results[0].level == "error"
+ assert results[0].lineno == 3
+ assert results[0].message == 'Unknown lint rule: "random"'
+ assert results[1].level == "error"
+ assert results[1].lineno == 4
+ assert results[1].message == 'Pattern "foo" not found in .gitignore'
+
+
+if __name__ == "__main__":
+ mozunit.main()