diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 00:38:50 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 00:38:50 +0000 |
commit | 09e7b47bad7e7310a6f52bdc20e9a9f251e79769 (patch) | |
tree | c93d189c1318902b8f1e5333d7ee34a1e9db9a34 /tests/rules/test_comments_indentation.py | |
parent | Initial commit. (diff) | |
download | yamllint-09e7b47bad7e7310a6f52bdc20e9a9f251e79769.tar.xz yamllint-09e7b47bad7e7310a6f52bdc20e9a9f251e79769.zip |
Adding upstream version 1.33.0.upstream/1.33.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/rules/test_comments_indentation.py')
-rw-r--r-- | tests/rules/test_comments_indentation.py | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/tests/rules/test_comments_indentation.py b/tests/rules/test_comments_indentation.py new file mode 100644 index 0000000..0aa5aac --- /dev/null +++ b/tests/rules/test_comments_indentation.py @@ -0,0 +1,156 @@ +# Copyright (C) 2016 Adrien Vergé +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +from tests.common import RuleTestCase + + +class CommentsIndentationTestCase(RuleTestCase): + rule_id = 'comments-indentation' + + def test_disable(self): + conf = 'comments-indentation: disable' + self.check('---\n' + ' # line 1\n' + '# line 2\n' + ' # line 3\n' + ' # line 4\n' + '\n' + 'obj:\n' + ' # these\n' + ' # are\n' + ' # [good]\n' + '# bad\n' + ' # comments\n' + ' a: b\n' + '\n' + 'obj1:\n' + ' a: 1\n' + ' # comments\n' + '\n' + 'obj2:\n' + ' b: 2\n' + '\n' + '# empty\n' + '#\n' + '# comment\n' + '...\n', conf) + + def test_enabled(self): + conf = 'comments-indentation: enable' + self.check('---\n' + '# line 1\n' + '# line 2\n', conf) + self.check('---\n' + ' # line 1\n' + '# line 2\n', conf, problem=(2, 2)) + self.check('---\n' + ' # line 1\n' + ' # line 2\n', conf, problem1=(2, 3)) + self.check('---\n' + 'obj:\n' + ' # normal\n' + ' a: b\n', conf) + self.check('---\n' + 'obj:\n' + ' # bad\n' + ' a: b\n', conf, problem=(3, 2)) + self.check('---\n' + 'obj:\n' + '# bad\n' + ' a: b\n', conf, problem=(3, 1)) + self.check('---\n' + 'obj:\n' + ' # bad\n' + ' a: b\n', conf, problem=(3, 4)) + self.check('---\n' + 'obj:\n' + ' # these\n' + ' # are\n' + ' # [good]\n' + '# bad\n' + ' # comments\n' + ' a: b\n', conf, + problem1=(3, 2), problem2=(4, 4), + problem3=(6, 1), problem4=(7, 7)) + self.check('---\n' + 'obj1:\n' + ' a: 1\n' + ' # the following line is disabled\n' + ' # b: 2\n', conf) + self.check('---\n' + 'obj1:\n' + ' a: 1\n' + ' # b: 2\n' + '\n' + 'obj2:\n' + ' b: 2\n', conf) + self.check('---\n' + 'obj1:\n' + ' a: 1\n' + ' # b: 2\n' + '# this object is useless\n' + 'obj2: "no"\n', conf) + self.check('---\n' + 'obj1:\n' + ' a: 1\n' + '# this object is useless\n' + ' # b: 2\n' + 'obj2: "no"\n', conf, problem=(5, 3)) + self.check('---\n' + 'obj1:\n' + ' a: 1\n' + ' # comments\n' + ' b: 2\n', conf) + self.check('---\n' + 'my list for today:\n' + ' - todo 1\n' + ' - todo 2\n' + ' # commented for now\n' + ' # - todo 3\n' + '...\n', conf) + + def test_first_line(self): + conf = 'comments-indentation: enable' + self.check('# comment\n', conf) + self.check(' # comment\n', conf, problem=(1, 3)) + + def test_no_newline_at_end(self): + conf = ('comments-indentation: enable\n' + 'new-line-at-end-of-file: disable\n') + self.check('# comment', conf) + self.check(' # comment', conf, problem=(1, 3)) + + def test_empty_comment(self): + conf = 'comments-indentation: enable' + self.check('---\n' + '# hey\n' + '# normal\n' + '#\n', conf) + self.check('---\n' + '# hey\n' + '# normal\n' + ' #\n', conf, problem=(4, 2)) + + def test_inline_comment(self): + conf = 'comments-indentation: enable' + self.check('---\n' + '- a # inline\n' + '# ok\n', conf) + self.check('---\n' + '- a # inline\n' + ' # not ok\n', conf, problem=(3, 2)) + self.check('---\n' + ' # not ok\n' + '- a # inline\n', conf, problem=(2, 2)) |