aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/parso/py3/tests/test_utils.py
diff options
context:
space:
mode:
authorshadchin <shadchin@yandex-team.ru>2022-02-10 16:44:30 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:44:30 +0300
commit2598ef1d0aee359b4b6d5fdd1758916d5907d04f (patch)
tree012bb94d777798f1f56ac1cec429509766d05181 /contrib/python/parso/py3/tests/test_utils.py
parent6751af0b0c1b952fede40b19b71da8025b5d8bcf (diff)
downloadydb-2598ef1d0aee359b4b6d5fdd1758916d5907d04f.tar.gz
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/python/parso/py3/tests/test_utils.py')
-rw-r--r--contrib/python/parso/py3/tests/test_utils.py214
1 files changed, 107 insertions, 107 deletions
diff --git a/contrib/python/parso/py3/tests/test_utils.py b/contrib/python/parso/py3/tests/test_utils.py
index 300a54ebc2..90b6f875a5 100644
--- a/contrib/python/parso/py3/tests/test_utils.py
+++ b/contrib/python/parso/py3/tests/test_utils.py
@@ -1,107 +1,107 @@
-from codecs import BOM_UTF8
-
-from parso.utils import (
- split_lines,
- parse_version_string,
- python_bytes_to_unicode,
-)
-
-import parso
-
-import pytest
-
-
-@pytest.mark.parametrize(
- ('string', 'expected_result', 'keepends'), [
- ('asd\r\n', ['asd', ''], False),
- ('asd\r\n', ['asd\r\n', ''], True),
- ('asd\r', ['asd', ''], False),
- ('asd\r', ['asd\r', ''], True),
- ('asd\n', ['asd', ''], False),
- ('asd\n', ['asd\n', ''], True),
-
- ('asd\r\n\f', ['asd', '\f'], False),
- ('asd\r\n\f', ['asd\r\n', '\f'], True),
-
- ('\fasd\r\n', ['\fasd', ''], False),
- ('\fasd\r\n', ['\fasd\r\n', ''], True),
-
- ('', [''], False),
- ('', [''], True),
-
- ('\n', ['', ''], False),
- ('\n', ['\n', ''], True),
-
- ('\r', ['', ''], False),
- ('\r', ['\r', ''], True),
-
- # Invalid line breaks
- ('a\vb', ['a\vb'], False),
- ('a\vb', ['a\vb'], True),
- ('\x1C', ['\x1C'], False),
- ('\x1C', ['\x1C'], True),
- ]
-)
-def test_split_lines(string, expected_result, keepends):
- assert split_lines(string, keepends=keepends) == expected_result
-
-
-def test_python_bytes_to_unicode_unicode_text():
- source = (
- b"# vim: fileencoding=utf-8\n"
- b"# \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a\n"
- )
- actual = python_bytes_to_unicode(source)
- expected = source.decode('utf-8')
- assert actual == expected
-
-
-def test_utf8_bom():
- unicode_bom = BOM_UTF8.decode('utf-8')
-
- module = parso.parse(unicode_bom)
- endmarker = module.children[0]
- assert endmarker.type == 'endmarker'
- assert unicode_bom == endmarker.prefix
-
- module = parso.parse(unicode_bom + 'foo = 1')
- expr_stmt = module.children[0]
- assert expr_stmt.type == 'expr_stmt'
- assert unicode_bom == expr_stmt.get_first_leaf().prefix
-
-
-@pytest.mark.parametrize(
- ('code', 'errors'), [
- (b'# coding: wtf-12\nfoo', 'strict'),
- (b'# coding: wtf-12\nfoo', 'replace'),
- (b'# coding: wtf-12\r\nfoo', 'strict'),
- (b'# coding: wtf-12\r\nfoo', 'replace'),
- (b'# coding: wtf-12\rfoo', 'strict'),
- (b'# coding: wtf-12\rfoo', 'replace'),
- ]
-)
-def test_bytes_to_unicode_failing_encoding(code, errors):
- if errors == 'strict':
- with pytest.raises(LookupError):
- python_bytes_to_unicode(code, errors=errors)
- else:
- python_bytes_to_unicode(code, errors=errors)
-
-
-@pytest.mark.parametrize(
- ('version_str', 'version'), [
- ('3', (3,)),
- ('3.6', (3, 6)),
- ('3.6.10', (3, 6)),
- ('3.10', (3, 10)),
- ('3.10a9', (3, 10)),
- ('3.10b9', (3, 10)),
- ('3.10rc9', (3, 10)),
- ]
-)
-def test_parse_version_string(version_str, version):
- parsed_version = parse_version_string(version_str)
- if len(version) == 1:
- assert parsed_version[0] == version[0]
- else:
- assert parsed_version == version
+from codecs import BOM_UTF8
+
+from parso.utils import (
+ split_lines,
+ parse_version_string,
+ python_bytes_to_unicode,
+)
+
+import parso
+
+import pytest
+
+
+@pytest.mark.parametrize(
+ ('string', 'expected_result', 'keepends'), [
+ ('asd\r\n', ['asd', ''], False),
+ ('asd\r\n', ['asd\r\n', ''], True),
+ ('asd\r', ['asd', ''], False),
+ ('asd\r', ['asd\r', ''], True),
+ ('asd\n', ['asd', ''], False),
+ ('asd\n', ['asd\n', ''], True),
+
+ ('asd\r\n\f', ['asd', '\f'], False),
+ ('asd\r\n\f', ['asd\r\n', '\f'], True),
+
+ ('\fasd\r\n', ['\fasd', ''], False),
+ ('\fasd\r\n', ['\fasd\r\n', ''], True),
+
+ ('', [''], False),
+ ('', [''], True),
+
+ ('\n', ['', ''], False),
+ ('\n', ['\n', ''], True),
+
+ ('\r', ['', ''], False),
+ ('\r', ['\r', ''], True),
+
+ # Invalid line breaks
+ ('a\vb', ['a\vb'], False),
+ ('a\vb', ['a\vb'], True),
+ ('\x1C', ['\x1C'], False),
+ ('\x1C', ['\x1C'], True),
+ ]
+)
+def test_split_lines(string, expected_result, keepends):
+ assert split_lines(string, keepends=keepends) == expected_result
+
+
+def test_python_bytes_to_unicode_unicode_text():
+ source = (
+ b"# vim: fileencoding=utf-8\n"
+ b"# \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a\n"
+ )
+ actual = python_bytes_to_unicode(source)
+ expected = source.decode('utf-8')
+ assert actual == expected
+
+
+def test_utf8_bom():
+ unicode_bom = BOM_UTF8.decode('utf-8')
+
+ module = parso.parse(unicode_bom)
+ endmarker = module.children[0]
+ assert endmarker.type == 'endmarker'
+ assert unicode_bom == endmarker.prefix
+
+ module = parso.parse(unicode_bom + 'foo = 1')
+ expr_stmt = module.children[0]
+ assert expr_stmt.type == 'expr_stmt'
+ assert unicode_bom == expr_stmt.get_first_leaf().prefix
+
+
+@pytest.mark.parametrize(
+ ('code', 'errors'), [
+ (b'# coding: wtf-12\nfoo', 'strict'),
+ (b'# coding: wtf-12\nfoo', 'replace'),
+ (b'# coding: wtf-12\r\nfoo', 'strict'),
+ (b'# coding: wtf-12\r\nfoo', 'replace'),
+ (b'# coding: wtf-12\rfoo', 'strict'),
+ (b'# coding: wtf-12\rfoo', 'replace'),
+ ]
+)
+def test_bytes_to_unicode_failing_encoding(code, errors):
+ if errors == 'strict':
+ with pytest.raises(LookupError):
+ python_bytes_to_unicode(code, errors=errors)
+ else:
+ python_bytes_to_unicode(code, errors=errors)
+
+
+@pytest.mark.parametrize(
+ ('version_str', 'version'), [
+ ('3', (3,)),
+ ('3.6', (3, 6)),
+ ('3.6.10', (3, 6)),
+ ('3.10', (3, 10)),
+ ('3.10a9', (3, 10)),
+ ('3.10b9', (3, 10)),
+ ('3.10rc9', (3, 10)),
+ ]
+)
+def test_parse_version_string(version_str, version):
+ parsed_version = parse_version_string(version_str)
+ if len(version) == 1:
+ assert parsed_version[0] == version[0]
+ else:
+ assert parsed_version == version