-
-
Notifications
You must be signed in to change notification settings - Fork 299
Closed
Labels
Milestone
Description
Steps to reproduce
tox -e py313
Current behavior
py313: install_deps> python -I -m pip install -r requirements_full.txt
.pkg: install_requires> python -I -m pip install 'setuptools>=64.0' 'wheel>=0.37.1'
.pkg: _optional_hooks> python /usr/lib/python3.12/site-packages/pyproject_api/_backend.py True setuptools.build_meta
.pkg: get_requires_for_build_sdist> python /usr/lib/python3.12/site-packages/pyproject_api/_backend.py True setuptools.build_meta
.pkg: get_requires_for_build_editable> python /usr/lib/python3.12/site-packages/pyproject_api/_backend.py True setuptools.build_meta
.pkg: build_sdist> python /usr/lib/python3.12/site-packages/pyproject_api/_backend.py True setuptools.build_meta
py313: install_package_deps> python -I -m pip install 'typing-extensions>=4.0.0; python_version < "3.11"'
py313: install_package> python -I -m pip install --force-reinstall --no-deps /tmp/astroid/.tox/.tmp/package/1/astroid-3.3.0.dev0.tar.gz
py313: commands[0]> pytest --cov
========================================================= test session starts =========================================================
platform linux -- Python 3.13.0b4, pytest-8.3.1, pluggy-1.5.0
cachedir: .tox/py313/.pytest_cache
rootdir: /tmp/astroid
configfile: pyproject.toml
testpaths: tests
plugins: cov-5.0.0
collected 1690 items
tests/brain/numpy/test_core_einsumfunc.py ss [ 0%]
tests/brain/numpy/test_core_fromnumeric.py s [ 0%]
tests/brain/numpy/test_core_function_base.py s [ 0%]
tests/brain/numpy/test_core_multiarray.py sssss [ 0%]
tests/brain/numpy/test_core_numeric.py sssss [ 0%]
tests/brain/numpy/test_core_numerictypes.py sssssss.. [ 1%]
tests/brain/numpy/test_core_umath.py ssssssss [ 1%]
tests/brain/numpy/test_ma.py ssss [ 2%]
tests/brain/numpy/test_ndarray.py sss [ 2%]
tests/brain/numpy/test_random_mtrand.py ss [ 2%]
tests/brain/test_argparse.py . [ 2%]
tests/brain/test_attr.py ..... [ 2%]
tests/brain/test_brain.py ......s....ss............................................s........................................... [ 8%]
...............x...............s...... [ 10%]
tests/brain/test_builtin.py .................. [ 12%]
tests/brain/test_ctypes.py ....x........................ [ 13%]
tests/brain/test_dataclasses.py ..............................................................................x... [ 18%]
tests/brain/test_dateutil.py . [ 18%]
tests/brain/test_enum.py ............................. [ 20%]
tests/brain/test_hashlib.py ... [ 20%]
tests/brain/test_multiprocessing.py ... [ 20%]
tests/brain/test_named_tuple.py ....................... [ 22%]
tests/brain/test_nose.py s [ 22%]
tests/brain/test_pathlib.py .... [ 22%]
tests/brain/test_pytest.py . [ 22%]
tests/brain/test_qt.py sss [ 22%]
tests/brain/test_regex.py .X [ 22%]
tests/brain/test_signal.py ... [ 22%]
tests/brain/test_six.py ....... [ 23%]
tests/brain/test_ssl.py . [ 23%]
tests/brain/test_threading.py .... [ 23%]
tests/brain/test_typing.py . [ 23%]
tests/brain/test_typing_extensions.py . [ 23%]
tests/brain/test_unittest.py . [ 23%]
tests/test_builder.py .......................................................x.. [ 27%]
tests/test_constraint.py ................................... [ 29%]
tests/test_decorators.py ... [ 29%]
tests/test_filter_statements.py . [ 29%]
tests/test_group_exceptions.py ... [ 29%]
tests/test_helpers.py ............... [ 30%]
tests/test_inference.py ............................................................................................x.......... [ 36%]
.x.....x.........................................................x............................................................. [ 44%]
.............................................................................x........xx.....................x...x............. [ 51%]
...................................x........................................ [ 56%]
tests/test_inference_calls.py ........................ [ 57%]
tests/test_lookup.py ....................................................... [ 60%]
tests/test_manager.py ............................................ [ 63%]
tests/test_modutils.py ................................................................... [ 67%]
tests/test_nodes.py .......F................................................................................................... [ 73%]
................................................................................. [ 78%]
tests/test_nodes_lineno.py ..................F.... [ 79%]
tests/test_nodes_position.py ... [ 80%]
tests/test_object_model.py x...............x.........s......... [ 82%]
tests/test_objects.py ...................... [ 83%]
tests/test_protocols.py ..................... [ 84%]
tests/test_python3.py .......................... [ 86%]
tests/test_raw_building.py ............. [ 87%]
tests/test_regrtest.py .............ss............ [ 88%]
tests/test_scoped_nodes.py .................................................................................................... [ 94%]
................................................................... [ 98%]
tests/test_stdlib.py .. [ 98%]
tests/test_transforms.py ......... [ 99%]
tests/test_type_params.py ..... [ 99%]
tests/test_utils.py ........ [100%]
============================================================== FAILURES ===============================================================
_____________________________________________________ AsStringTest.test_f_strings _____________________________________________________
self = <tests.test_nodes.AsStringTest testMethod=test_f_strings>
def test_f_strings(self):
code = r'''
a = f"{'a'}"
b = f'{{b}}'
c = f""" "{'c'}" """
d = f'{d!r} {d!s} {d!a}'
e = f'{e:.3}'
f = f'{f:{x}.{y}}'
n = f'\n'
everything = f""" " \' \r \t \\ {{ }} {'x' + x!r:a} {["'"]!s:{a}}"""
'''
ast = abuilder.string_build(code)
> self.assertEqual(ast.as_string().strip(), code.strip())
E AssertionError: 'a = [85 chars]\'{e:3}\'\nf = f\'{f:{x}.{y}}\'\nn = f\'\\n\'\[73 chars]}"""' != 'a = [85 chars]\'{e:.3}\'\nf = f\'{f:{x}.{y}}\'\nn = f\'\\n\'[75 chars]}"""'
E a = f"{'a'}"
E b = f'{{b}}'
E c = f""" "{'c'}" """
E d = f'{d!r} {d!s} {d!a}'
E - e = f'{e:3}'
E + e = f'{e:.3}'
E ? +
E f = f'{f:{x}.{y}}'
E n = f'\n'
E - everything = f""" " \' \r \t \\ {{ }} {'x' + x!r:} {["'"]!s:{a}}"""
E + everything = f""" " \' \r \t \\ {{ }} {'x' + x!r:a} {["'"]!s:{a}}"""
E ? +
tests/test_nodes.py:275: AssertionError
_____________________________________________ TestLinenoColOffset.test_end_lineno_string ______________________________________________
@staticmethod
def test_end_lineno_string() -> None:
"""FormattedValue, JoinedStr."""
code = textwrap.dedent(
"""
f"Hello World: {42.1234:02d}" #@
f"Hello: {name=}" #@
"""
).strip()
ast_nodes = builder.extract_node(code)
assert isinstance(ast_nodes, list) and len(ast_nodes) == 2
s1 = ast_nodes[0]
assert isinstance(s1, nodes.JoinedStr)
assert isinstance(s1.values[0], nodes.Const)
assert (s1.lineno, s1.col_offset) == (1, 0)
assert (s1.end_lineno, s1.end_col_offset) == (1, 29)
if PY312_PLUS:
assert (s1.values[0].lineno, s1.values[0].col_offset) == (1, 2)
assert (s1.values[0].end_lineno, s1.values[0].end_col_offset) == (1, 15)
else:
# Bug in Python 3.11
# https://github.com/python/cpython/issues/81639
assert (s1.values[0].lineno, s1.values[0].col_offset) == (1, 0)
assert (s1.values[0].end_lineno, s1.values[0].end_col_offset) == (1, 29)
s2 = s1.values[1]
assert isinstance(s2, nodes.FormattedValue)
if PY312_PLUS:
assert (s2.lineno, s2.col_offset) == (1, 15)
assert (s2.end_lineno, s2.end_col_offset) == (1, 28)
else:
assert (s2.lineno, s2.col_offset) == (1, 0)
assert (s2.end_lineno, s2.end_col_offset) == (1, 29)
assert isinstance(s2.value, nodes.Const) # 42.1234
assert (s2.value.lineno, s2.value.col_offset) == (1, 16)
assert (s2.value.end_lineno, s2.value.end_col_offset) == (1, 23)
> assert isinstance(s2.format_spec, nodes.JoinedStr) # ':02d'
E AssertionError: assert False
E + where False = isinstance(<Const.str l.1 at 0x7fdf5d9950a0>, <class 'astroid.nodes.node_classes.JoinedStr'>)
E + where <Const.str l.1 at 0x7fdf5d9950a0> = <FormattedValue l.1 at 0x7fdf5d9fc870>.format_spec
E + and <class 'astroid.nodes.node_classes.JoinedStr'> = nodes.JoinedStr
tests/test_nodes_lineno.py:955: AssertionError
----------- coverage: platform linux, python 3.13.0-beta-4 -----------
Name Stmts Miss Cover
---------------------------------------------------------------------
astroid/__init__.py 17 1 94%
astroid/__pkginfo__.py 2 0 100%
astroid/_ast.py 37 0 100%
astroid/_backport_stdlib_names.py 7 1 86%
astroid/arguments.py 133 1 99%
astroid/astroid_manager.py 4 0 100%
astroid/bases.py 376 44 88%
astroid/brain/__init__.py 0 0 100%
astroid/brain/brain_argparse.py 24 1 96%
astroid/brain/brain_attrs.py 35 0 100%
astroid/brain/brain_boto3.py 13 4 69%
astroid/brain/brain_builtin_inference.py 477 39 92%
astroid/brain/brain_collections.py 30 0 100%
astroid/brain/brain_crypt.py 7 0 100%
astroid/brain/brain_ctypes.py 13 0 100%
astroid/brain/brain_curses.py 7 0 100%
astroid/brain/brain_dataclasses.py 316 24 92%
astroid/brain/brain_datetime.py 9 0 100%
astroid/brain/brain_dateutil.py 8 0 100%
astroid/brain/brain_fstrings.py 31 19 39%
astroid/brain/brain_functools.py 80 1 99%
astroid/brain/brain_gi.py 139 107 23%
astroid/brain/brain_hashlib.py 18 0 100%
astroid/brain/brain_http.py 12 0 100%
astroid/brain/brain_hypothesis.py 16 7 56%
astroid/brain/brain_io.py 18 0 100%
astroid/brain/brain_mechanize.py 7 0 100%
astroid/brain/brain_multiprocessing.py 27 2 93%
astroid/brain/brain_namedtuple_enum.py 280 21 92%
astroid/brain/brain_nose.py 40 2 95%
astroid/brain/brain_numpy_core_einsumfunc.py 8 0 100%
astroid/brain/brain_numpy_core_fromnumeric.py 7 0 100%
astroid/brain/brain_numpy_core_function_base.py 10 0 100%
astroid/brain/brain_numpy_core_multiarray.py 16 0 100%
astroid/brain/brain_numpy_core_numeric.py 15 0 100%
astroid/brain/brain_numpy_core_numerictypes.py 11 1 91%
astroid/brain/brain_numpy_core_umath.py 8 0 100%
astroid/brain/brain_numpy_ma.py 7 0 100%
astroid/brain/brain_numpy_ndarray.py 16 4 75%
astroid/brain/brain_numpy_random_mtrand.py 7 0 100%
astroid/brain/brain_numpy_utils.py 25 3 88%
astroid/brain/brain_pathlib.py 24 2 92%
astroid/brain/brain_pkg_resources.py 7 0 100%
astroid/brain/brain_pytest.py 8 0 100%
astroid/brain/brain_qt.py 29 10 66%
astroid/brain/brain_random.py 55 8 85%
astroid/brain/brain_re.py 22 1 95%
astroid/brain/brain_regex.py 18 0 100%
astroid/brain/brain_responses.py 7 0 100%
astroid/brain/brain_scipy_signal.py 7 0 100%
astroid/brain/brain_signal.py 23 2 91%
astroid/brain/brain_six.py 89 9 90%
astroid/brain/brain_sqlalchemy.py 7 0 100%
astroid/brain/brain_ssl.py 16 0 100%
astroid/brain/brain_subprocess.py 25 0 100%
astroid/brain/brain_threading.py 7 0 100%
astroid/brain/brain_type.py 18 0 100%
astroid/brain/brain_typing.py 159 20 87%
astroid/brain/brain_unittest.py 7 0 100%
astroid/brain/brain_uuid.py 7 0 100%
astroid/brain/helpers.py 66 0 100%
astroid/builder.py 224 13 94%
astroid/const.py 14 0 100%
astroid/constraint.py 68 1 99%
astroid/context.py 78 2 97%
astroid/decorators.py 94 26 72%
astroid/exceptions.py 118 3 97%
astroid/filter_statements.py 91 2 98%
astroid/helpers.py 154 8 95%
astroid/inference_tip.py 45 1 98%
astroid/interpreter/__init__.py 0 0 100%
astroid/interpreter/_import/__init__.py 0 0 100%
astroid/interpreter/_import/spec.py 197 11 94%
astroid/interpreter/_import/util.py 47 2 96%
astroid/interpreter/dunder_lookup.py 30 0 100%
astroid/interpreter/objectmodel.py 488 38 92%
astroid/manager.py 246 31 87%
astroid/modutils.py 282 40 86%
astroid/nodes/__init__.py 5 0 100%
astroid/nodes/_base_nodes.py 261 15 94%
astroid/nodes/as_string.py 374 12 97%
astroid/nodes/const.py 1 0 100%
astroid/nodes/node_classes.py 1990 104 95%
astroid/nodes/node_ng.py 329 24 93%
astroid/nodes/scoped_nodes/__init__.py 4 0 100%
astroid/nodes/scoped_nodes/mixin.py 60 0 100%
astroid/nodes/scoped_nodes/scoped_nodes.py 1290 97 92%
astroid/nodes/scoped_nodes/utils.py 17 0 100%
astroid/nodes/utils.py 6 0 100%
astroid/objects.py 159 10 94%
astroid/protocols.py 421 43 90%
astroid/raw_building.py 316 29 91%
astroid/rebuilder.py 502 7 99%
astroid/test_utils.py 48 8 83%
astroid/transforms.py 49 0 100%
astroid/typing.py 23 0 100%
astroid/util.py 77 9 88%
---------------------------------------------------------------------
TOTAL 11022 870 92%
======================================================= short test summary info =======================================================
FAILED tests/test_nodes.py::AsStringTest::test_f_strings - AssertionError: 'a = [85 chars]\'{e:3}\'\nf = f\'{f:{x}.{y}}\'\nn = f\'\\n\'\[73 chars]}"""' != 'a = [85 chars]\'{e:.3}\'\nf = f\'...
FAILED tests/test_nodes_lineno.py::TestLinenoColOffset::test_end_lineno_string - AssertionError: assert False
============================ 2 failed, 1621 passed, 50 skipped, 16 xfailed, 1 xpassed in 167.47s (0:02:47) ============================
py313: exit 1 (171.41 seconds) /tmp/astroid> pytest --cov pid=524964
py313: FAIL code 1 (207.88=setup[36.48]+cmd[171.41] seconds)
evaluation failed :( (208.13 seconds)
Expected behavior
Tests passing again :-).
python -c "from astroid import __pkginfo__; print(__pkginfo__.version)"
output
3.3.0-dev0
(77100a2)