From c8032c086b7a5057a6daa9a0648317cae5d4f413 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20Verg=C3=A9?= Date: Fri, 23 Nov 2018 09:58:40 +0100 Subject: [PATCH] line-length: Add tests for lines containing unicode characters Some unicode characters span accross multiple bytes. Python 3 is OK with that, but Python 2 reports an incorrect number of characters. Related to https://github.com/adrienverge/yamllint/issues/146 --- tests/rules/test_line_length.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/rules/test_line_length.py b/tests/rules/test_line_length.py index cab3e18..d052483 100644 --- a/tests/rules/test_line_length.py +++ b/tests/rules/test_line_length.py @@ -14,6 +14,13 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +import sys +try: + assert sys.version_info >= (2, 7) + import unittest +except AssertionError: + import unittest2 as unittest + from tests.common import RuleTestCase @@ -155,3 +162,16 @@ class LineLengthTestCase(RuleTestCase): 'content: |\n' ' {% this line is' + 99 * ' really' + ' long %}\n', conf, problem=(3, 81)) + + @unittest.skipIf(sys.version_info < (3, 0), 'Python 2 not supported') + def test_unicode(self): + conf = 'line-length: {max: 53}' + self.check('---\n' + '# This is a test to check if “line-length” works nice\n' + 'with: “unicode characters” that span accross bytes! ↺\n', + conf) + conf = 'line-length: {max: 52}' + self.check('---\n' + '# This is a test to check if “line-length” works nice\n' + 'with: “unicode characters” that span accross bytes! ↺\n', + conf, problem1=(2, 53), problem2=(3, 53))