diff --git a/.travis.yml b/.travis.yml index 86347ee..b57b1b5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,6 @@ language: python python: - 2.6 - 2.7 - - 3.3 - 3.4 - 3.5 - 3.6 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)) diff --git a/yamllint/rules/line_length.py b/yamllint/rules/line_length.py index e87972e..f7a2f2f 100644 --- a/yamllint/rules/line_length.py +++ b/yamllint/rules/line_length.py @@ -17,6 +17,10 @@ """ Use this rule to set a limit to lines length. +Note: with Python 2, the ``line-length`` rule may not work properly with +unicode characters because of the way strings are represented in bytes. We +recommend running yamllint with Python 3. + .. rubric:: Options * ``max`` defines the maximal (inclusive) length of lines.