mirror of
https://github.com/davidhalter/parso.git
synced 2025-12-07 05:14:29 +08:00
Ignore Python 2 specific code in tests
This commit is contained in:
@@ -180,12 +180,13 @@ def test_inactive_cache(tmpdir, isolated_parso_cache):
|
|||||||
@skip_pypy
|
@skip_pypy
|
||||||
def test_permission_error(monkeypatch):
|
def test_permission_error(monkeypatch):
|
||||||
def save(*args, **kwargs):
|
def save(*args, **kwargs):
|
||||||
was_called[0] = True # Python 2... Use nonlocal instead
|
nonlocal was_called
|
||||||
|
was_called = True
|
||||||
raise PermissionError
|
raise PermissionError
|
||||||
|
|
||||||
was_called = [False]
|
was_called = False
|
||||||
|
|
||||||
monkeypatch.setattr(cache, '_save_to_file_system', save)
|
monkeypatch.setattr(cache, '_save_to_file_system', save)
|
||||||
with pytest.warns(Warning):
|
with pytest.warns(Warning):
|
||||||
parse(path=__file__, cache=True, diff_cache=True)
|
parse(path=__file__, cache=True, diff_cache=True)
|
||||||
assert was_called[0]
|
assert was_called
|
||||||
|
|||||||
@@ -109,16 +109,8 @@ def test_param_splitting(each_version):
|
|||||||
but Jedi does this to simplify argument parsing.
|
but Jedi does this to simplify argument parsing.
|
||||||
"""
|
"""
|
||||||
def check(src, result):
|
def check(src, result):
|
||||||
# Python 2 tuple params should be ignored for now.
|
|
||||||
m = parse(src, version=each_version)
|
m = parse(src, version=each_version)
|
||||||
if each_version.startswith('2'):
|
assert not list(m.iter_funcdefs())
|
||||||
# We don't want b and c to be a part of the param enumeration. Just
|
|
||||||
# ignore them, because it's not what we want to support in the
|
|
||||||
# future.
|
|
||||||
func = next(m.iter_funcdefs())
|
|
||||||
assert [param.name.value for param in func.get_params()] == result
|
|
||||||
else:
|
|
||||||
assert not list(m.iter_funcdefs())
|
|
||||||
|
|
||||||
check('def x(a, (b, c)):\n pass', ['a'])
|
check('def x(a, (b, c)):\n pass', ['a'])
|
||||||
check('def x((b, c)):\n pass', [])
|
check('def x((b, c)):\n pass', [])
|
||||||
@@ -138,15 +130,6 @@ def test_started_lambda_stmt(each_version):
|
|||||||
assert m.children[0].type == 'error_node'
|
assert m.children[0].type == 'error_node'
|
||||||
|
|
||||||
|
|
||||||
def test_python2_octal(each_version):
|
|
||||||
module = parse('0660', version=each_version)
|
|
||||||
first = module.children[0]
|
|
||||||
if each_version.startswith('2'):
|
|
||||||
assert first.type == 'number'
|
|
||||||
else:
|
|
||||||
assert first.type == 'error_node'
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('code', ['foo "', 'foo """\n', 'foo """\nbar'])
|
@pytest.mark.parametrize('code', ['foo "', 'foo """\n', 'foo """\nbar'])
|
||||||
def test_open_string_literal(each_version, code):
|
def test_open_string_literal(each_version, code):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -1,11 +1,3 @@
|
|||||||
"""Test suite for 2to3's parser and grammar files.
|
|
||||||
|
|
||||||
This is the place to add tests for changes to 2to3's grammar, such as those
|
|
||||||
merging the grammars for Python 2 and 3. In addition to specific tests for
|
|
||||||
parts of the grammar we've changed, we also make sure we can parse the
|
|
||||||
test_grammar.py files from both Python 2 and Python 3.
|
|
||||||
"""
|
|
||||||
|
|
||||||
from textwrap import dedent
|
from textwrap import dedent
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
@@ -281,10 +273,6 @@ def test_parser_idempotency_extended_unpacking(works_in_py):
|
|||||||
|
|
||||||
|
|
||||||
def test_multiline_bytes_literals(each_version):
|
def test_multiline_bytes_literals(each_version):
|
||||||
"""
|
|
||||||
It's not possible to get the same result when using \xaa in Python 2/3,
|
|
||||||
because it's treated differently.
|
|
||||||
"""
|
|
||||||
s = """
|
s = """
|
||||||
md5test(b"\xaa" * 80,
|
md5test(b"\xaa" * 80,
|
||||||
(b"Test Using Larger Than Block-Size Key "
|
(b"Test Using Larger Than Block-Size Key "
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
try:
|
from itertools import zip_longest
|
||||||
from itertools import zip_longest
|
|
||||||
except ImportError:
|
|
||||||
# Python 2
|
|
||||||
from itertools import izip_longest as zip_longest
|
|
||||||
|
|
||||||
from codecs import BOM_UTF8
|
from codecs import BOM_UTF8
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|||||||
@@ -136,12 +136,7 @@ def test_identifier_contains_unicode():
|
|||||||
''')
|
''')
|
||||||
token_list = _get_token_list(fundef)
|
token_list = _get_token_list(fundef)
|
||||||
unicode_token = token_list[1]
|
unicode_token = token_list[1]
|
||||||
if sys.version_info.major >= 3:
|
assert unicode_token[0] == NAME
|
||||||
assert unicode_token[0] == NAME
|
|
||||||
else:
|
|
||||||
# Unicode tokens in Python 2 seem to be identified as operators.
|
|
||||||
# They will be ignored in the parser, that's ok.
|
|
||||||
assert unicode_token[0] == ERRORTOKEN
|
|
||||||
|
|
||||||
|
|
||||||
def test_quoted_strings():
|
def test_quoted_strings():
|
||||||
|
|||||||
Reference in New Issue
Block a user