Bug 1874684 - Part 6: Limit day length calculations to safe integers. r=mgaudet
[gecko.git] / tools / lint / test / test_ignorefile.py
blob502096c5b904330e93c104cad6997d5ac4361c11
1 # This Source Code Form is subject to the terms of the Mozilla Public
2 # License, v. 2.0. If a copy of the MPL was not distributed with this
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
5 import mozunit
7 LINTER = "ignorefile"
10 def test_same(lint, create_temp_file):
11 hgContents = """
12 \\.pyc$
13 \\.pyo$
14 """
15 gitContents = """
16 *.pyc
17 *.pyo
18 """
20 path = create_temp_file(hgContents, ".hgignore")
21 create_temp_file(gitContents, ".gitignore")
23 results = lint([path])
25 assert len(results) == 0
28 def test_replace(lint, create_temp_file):
29 hgContents = """
30 \\.pyc$
31 \\.pyo$
32 """
33 gitContents = """
34 *.pyc
35 *.pyp
36 """
38 path = create_temp_file(hgContents, ".hgignore")
39 path2 = create_temp_file(gitContents, ".gitignore")
41 results = lint([path])
43 assert len(results) == 1
44 assert results[0].level == "error"
45 assert results[0].lineno == 3
46 assert (
47 results[0].message
48 == 'Pattern mismatch: "\\.pyo$" in .hgignore vs "*.pyp" in .gitignore'
51 results = lint([path2])
53 assert len(results) == 1
54 assert results[0].level == "error"
55 assert results[0].lineno == 3
56 assert (
57 results[0].message
58 == 'Pattern mismatch: "*.pyp" in .gitignore vs "\\.pyo$" in .hgignore'
62 def test_insert(lint, create_temp_file):
63 hgContents = """
64 \\.pyc$
65 \\.pyo$
66 """
67 gitContents = """
68 *.pyc
69 foo
70 *.pyo
71 """
73 path = create_temp_file(hgContents, ".hgignore")
74 create_temp_file(gitContents, ".gitignore")
76 results = lint([path])
78 assert len(results) == 1
79 assert results[0].level == "error"
80 assert results[0].lineno == 3
81 assert results[0].message == 'Pattern "foo" not found in .hgignore'
84 def test_delete(lint, create_temp_file):
85 hgContents = """
86 \\.pyc$
87 foo
88 \\.pyo$
89 """
90 gitContents = """
91 *.pyc
92 *.pyo
93 """
95 path = create_temp_file(hgContents, ".hgignore")
96 create_temp_file(gitContents, ".gitignore")
98 results = lint([path])
100 assert len(results) == 1
101 assert results[0].level == "error"
102 assert results[0].lineno == 3
103 assert results[0].message == 'Pattern "foo" not found in .gitignore'
106 def test_ignore(lint, create_temp_file):
107 hgContents = """
108 \\.pyc$
109 # lint-ignore-next-line: hg-only
111 \\.pyo$
112 # lint-ignore-next-line: syntax-difference
113 (file1|file2)
114 diff1
116 gitContents = """
117 *.pyc
118 *.pyo
119 # lint-ignore-next-line: git-only
121 # lint-ignore-next-line: syntax-difference
122 file1
123 # lint-ignore-next-line: syntax-difference
124 file2
125 diff2
128 path = create_temp_file(hgContents, ".hgignore")
129 create_temp_file(gitContents, ".gitignore")
131 results = lint([path])
133 # Only the line without lint-ignore-next-line should be reported
134 assert len(results) == 1
135 assert results[0].level == "error"
136 assert results[0].lineno == 8
137 assert (
138 results[0].message
139 == 'Pattern mismatch: "diff1" in .hgignore vs "diff2" in .gitignore'
143 def test_invalid_syntax(lint, create_temp_file):
144 hgContents = """
145 \\.pyc$
146 # lint-ignore-next-line: random
148 \\.pyo$
150 gitContents = """
151 *.pyc
152 *.pyo
155 path = create_temp_file(hgContents, ".hgignore")
156 create_temp_file(gitContents, ".gitignore")
158 results = lint([path])
160 assert len(results) == 2
161 assert results[0].level == "error"
162 assert results[0].lineno == 3
163 assert results[0].message == 'Unknown lint rule: "random"'
164 assert results[1].level == "error"
165 assert results[1].lineno == 4
166 assert results[1].message == 'Pattern "foo" not found in .gitignore'
169 if __name__ == "__main__":
170 mozunit.main()