Bug 1905842: apply code formatting via Lando
[gecko.git] / tools / lint / test / test_fluent_lint.py
blob0bbd4305d51c67ef04be163b1d07e34a5c31a887
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/.
4 import mozunit
6 LINTER = "fluent-lint"
9 def test_lint_exclusions(lint, paths):
10 results = lint(paths("excluded.ftl"))
11 assert len(results) == 1
12 assert results[0].rule == "TE01"
13 assert results[0].lineno == 6
14 assert results[0].column == 20
17 def test_lint_single_file(lint, paths):
18 results = lint(paths("bad.ftl"))
19 assert len(results) == 13
20 assert results[0].rule == "ID01"
21 assert results[0].lineno == 1
22 assert results[0].column == 1
23 assert results[1].rule == "ID01"
24 assert results[1].lineno == 3
25 assert results[1].column == 1
26 assert results[2].rule == "TE01"
27 assert results[2].lineno == 5
28 assert results[2].column == 20
29 assert results[3].rule == "TE01"
30 assert results[3].lineno == 6
31 assert results[3].column == 24
32 assert results[4].rule == "TE02"
33 assert results[4].lineno == 7
34 assert results[4].column == 20
35 assert results[5].rule == "TE03"
36 assert results[5].lineno == 8
37 assert results[5].column == 20
38 assert results[6].rule == "TE04"
39 assert results[6].lineno == 11
40 assert results[6].column == 20
41 assert results[7].rule == "TE05"
42 assert results[7].lineno == 13
43 assert results[7].column == 16
44 assert results[8].rule == "TE03"
45 assert results[8].lineno == 17
46 assert results[8].column == 20
47 assert results[9].rule == "TE03"
48 assert results[9].lineno == 25
49 assert results[9].column == 18
50 assert results[10].rule == "ID02"
51 assert results[10].lineno == 32
52 assert results[10].column == 1
53 assert results[11].rule == "VC01"
54 assert "$tabCount" in results[11].message
55 assert results[12].rule == "VC01"
56 assert "$url" in results[12].message
59 def test_comment_group(lint, paths):
60 results = lint(paths("comment-group1.ftl"))
61 assert len(results) == 6
62 assert results[0].rule == "GC03"
63 assert results[0].lineno == 12
64 assert results[0].column == 1
65 assert results[1].rule == "GC02"
66 assert results[1].lineno == 16
67 assert results[1].column == 1
68 assert results[2].rule == "GC04"
69 assert results[2].lineno == 21
70 assert results[2].column == 1
71 assert results[3].rule == "GC03"
72 assert results[3].lineno == 26
73 assert results[3].column == 1
74 assert results[4].rule == "GC02"
75 assert results[4].lineno == 30
76 assert results[4].column == 1
77 assert results[5].rule == "GC01"
78 assert results[5].lineno == 35
79 assert results[5].column == 1
81 results = lint(paths("comment-group2.ftl"))
82 assert (len(results)) == 0
85 def test_comment_resource(lint, paths):
86 results = lint(paths("comment-resource1.ftl"))
87 assert len(results) == 1
88 assert results[0].rule == "RC01"
89 assert results[0].lineno == 9
90 assert results[0].column == 1
92 results = lint(paths("comment-resource2.ftl"))
93 assert len(results) == 1
94 assert results[0].rule == "RC03"
95 assert results[0].lineno == 4
96 assert results[0].column == 1
98 results = lint(paths("comment-resource3.ftl"))
99 assert len(results) == 1
100 assert results[0].rule == "RC02"
101 assert results[0].lineno == 5
102 assert results[0].column == 1
104 results = lint(paths("comment-resource4.ftl"))
105 assert len(results) == 1
106 assert results[0].rule == "RC03"
107 assert results[0].lineno == 6
108 assert results[0].column == 1
110 results = lint(paths("comment-resource5.ftl"))
111 assert len(results) == 1
112 assert results[0].rule == "RC02"
113 assert results[0].lineno == 5
114 assert results[0].column == 1
116 results = lint(paths("comment-resource6.ftl"))
117 assert len(results) == 0
120 def test_brand_names(lint, paths):
121 results = lint(paths("brand-names.ftl"), {"brand-files": ["test-brands.ftl"]})
122 assert len(results) == 11
123 assert results[0].rule == "CO01"
124 assert results[0].lineno == 1
125 assert results[0].column == 16
126 assert "Firefox" in results[0].message
127 assert "Mozilla" not in results[0].message
128 assert "Thunderbird" not in results[0].message
129 assert results[1].rule == "CO01"
130 assert results[1].lineno == 4
131 assert results[1].column == 16
133 results = lint(paths("brand-names-excluded.ftl"))
134 assert len(results) == 0
137 def test_comment_variables(lint, paths):
138 results = lint(paths("comment-variables1.ftl"))
139 assert len(results) == 4
140 assert results[0].rule == "VC01"
141 assert "$var" in results[0].message
142 assert results[1].rule == "VC01"
143 assert "$select1" in results[1].message
144 assert results[2].rule == "VC01"
145 assert "$select2" in results[2].message
146 assert results[3].rule == "VC01"
147 assert "$attr" in results[3].message
149 results = lint(paths("comment-variables2.ftl"))
150 assert len(results) == 1
151 assert results[0].rule == "VC01"
152 assert "$term-message" in results[0].message
155 def test_valid_attributes(lint, paths):
156 results = lint(paths("valid-attributes.ftl"))
157 print(results)
158 assert len(results) == 1
159 assert results[0].rule == "VA01"
160 assert ".extralabel" in results[0].message
163 if __name__ == "__main__":
164 mozunit.main()