Skip to content

Regressions with Python 3.13.4: TypeError: 'LookupBlock' object is not iterable #3854

@mgorny

Description

@mgorny

When running tests on Python 3.13.4 (3.13.3 was fine) I'm seeing a bunch of test failures:

$ tox -e py313
py313: pip-25.1.1-py3-none-any.whl already present in /home/mgorny/.local/share/virtualenv/wheel/3.13/embed/3/pip.json
py313: install_deps> python -m pip install --only-binary=lxml 'pytest!=8.0.1,!=8.0.2,>=7.0.0' pytest-randomly -r requirements.txt
.pkg: install_requires> python -I -m pip install 'setuptools>=40.8.0'
.pkg: _optional_hooks> python /usr/lib/python3.14/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: get_requires_for_build_sdist> python /usr/lib/python3.14/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: get_requires_for_build_wheel> python /usr/lib/python3.14/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: prepare_metadata_for_build_wheel> python /usr/lib/python3.14/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: build_sdist> python /usr/lib/python3.14/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
py313: install_package> python -m pip install --only-binary=lxml --force-reinstall --no-deps /tmp/fonttools/.tox/.tmp/package/1/fonttools-4.58.3.dev0.tar.gz
py313: commands[0]> python -c 'from fontTools.cu2qu.cu2qu import COMPILED; assert not COMPILED'
py313: commands[1]> pytest Tests fontTools
========================================================= test session starts =========================================================
platform linux -- Python 3.13.4, pytest-8.4.0, pluggy-1.6.0
cachedir: .tox/py313/.pytest_cache
Using --randomly-seed=3396910688
rootdir: /tmp/fonttools
configfile: setup.cfg
plugins: randomly-3.16.0
collected 4603 items / 4 skipped                                                                                                      

Tests/misc/plistlib_test.py ....x..........................x...........................................                         [  1%]
Tests/ttLib/tables/tables_test.py ............................................................................................. [  3%]
............................................................................................................................... [  6%]
............................................................................................................................... [  9%]
............................................................................................................................... [ 11%]
............................................................................................................................... [ 14%]
............................................................................................................................... [ 17%]
......                                                                                                                          [ 17%]
Tests/svgLib/path/path_test.py ...                                                                                              [ 17%]
Tests/misc/textTools_test.py .                                                                                                  [ 17%]
Tests/ttLib/tables/_p_r_o_p_test.py ....                                                                                        [ 17%]
Tests/ttLib/ttVisitor_test.py .                                                                                                 [ 17%]
Tests/pens/cu2quPen_test.py ..........................                                                                          [ 18%]
Tests/svgLib/path/parser_test.py ....................................                                                           [ 19%]
Tests/ttLib/tables/otTables_test.py ............................................                                                [ 20%]
Tests/ttLib/tables/_c_v_t_test.py ..                                                                                            [ 20%]
Tests/misc/configTools_test.py ...                                                                                              [ 20%]
Tests/pens/perimeterPen_test.py ........                                                                                        [ 20%]
Tests/ttLib/ttGlyphSet_test.py ...............                                                                                  [ 20%]
Tests/varLib/iup_test.py .....                                                                                                  [ 20%]
Tests/ttLib/tables/_a_n_k_r_test.py ...                                                                                         [ 20%]
Tests/voltLib/volttofea_test.py .....F....F......FF..F.......F.F..F....F....................F.F........                         [ 22%]
Tests/cu2qu/cu2qu_test.py ......                                                                                                [ 22%]
Tests/ttLib/tables/_v_m_t_x_test.py .................                                                                           [ 22%]
Tests/ttLib/tables/T_S_I__0_test.py ........                                                                                    [ 23%]
Tests/misc/eexec_test.py ..                                                                                                     [ 23%]
Tests/colorLib/table_builder_test.py .                                                                                          [ 23%]
Tests/ttLib/tables/C_F_F__2_test.py ..                                                                                          [ 23%]
Tests/misc/etree_test.py ....                                                                                                   [ 23%]
Tests/ttLib/tables/C_O_L_R_test.py ...............                                                                              [ 23%]
Tests/ufoLib/filenames_test.py ....                                                                                             [ 23%]
Tests/ttLib/tables/_c_v_a_r_test.py ......                                                                                      [ 23%]
Tests/ttLib/woff2_test.py ..................................................................................................... [ 26%]
......................                                                                                                          [ 26%]
Tests/ttLib/ttCollection_test.py ......                                                                                         [ 26%]
Tests/pens/qu2cuPen_test.py .............                                                                                       [ 26%]
Tests/ttLib/tables/O_S_2f_2_test.py ........                                                                                    [ 27%]
Tests/varLib/avar_test.py .......                                                                                               [ 27%]
Tests/t1Lib/t1Lib_test.py .............                                                                                         [ 27%]
Tests/ttLib/tables/otConverters_test.py .........................................                                               [ 28%]
Tests/ttLib/tables/_c_i_d_g_test.py ..                                                                                          [ 28%]
Tests/misc/timeTools_test.py s..                                                                                                [ 28%]
Tests/varLib/builder_test.py .....................                                                                              [ 28%]
Tests/ufoLib/UFO3_test.py ..............................................................................                        [ 30%]
Tests/ttLib/tables/_b_s_l_n_test.py ....                                                                                        [ 30%]
Tests/ttLib/tables/T_S_I__1_test.py ........                                                                                    [ 30%]
Tests/ttLib/tables/_m_e_t_a_test.py .........                                                                                   [ 31%]
Tests/ttLib/scaleUpem_test.py ...                                                                                               [ 31%]
Tests/misc/vector_test.py ..                                                                                                    [ 31%]
Tests/misc/symfont_test.py ..                                                                                                   [ 31%]
Tests/designspaceLib/statNames_test.py .....                                                                                    [ 31%]
Tests/qu2cu/qu2cu_test.py ......                                                                                                [ 31%]
Tests/misc/xmlReader_test.py ......                                                                                             [ 31%]
Tests/otlLib/optimize_test.py .                                                                                                 [ 31%]
Tests/pens/utils.py .                                                                                                           [ 31%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/woff2.py .                                                              [ 31%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py .                                                           [ 31%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/_g_l_y_f.py .                                                    [ 31%]
.tox/py313/lib/python3.13/site-packages/fontTools/pens/svgPathPen.py .                                                          [ 31%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/_g_l_y_f.py .                                                    [ 31%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py .                                                           [ 31%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/_g_l_y_f.py .                                                    [ 31%]
.tox/py313/lib/python3.13/site-packages/fontTools/pens/roundingPen.py .                                                         [ 31%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py ..                                                          [ 31%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/dictTools.py .                                                           [ 31%]
.tox/py313/lib/python3.13/site-packages/fontTools/ufoLib/validators.py ..                                                       [ 31%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/__init__.py .                                                    [ 31%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py .                                                           [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/ttProgram.py .                                                   [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/_g_l_y_f.py .                                                    [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ufoLib/validators.py .                                                        [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/_g_l_y_f.py .                                                    [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/plistlib/__init__.py .                                                   [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/bezierTools.py .                                                         [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ufoLib/kerning.py .                                                           [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/pens/svgPathPen.py ..                                                         [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/agl.py .                                                                      [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/pens/svgPathPen.py .                                                          [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/pens/filterPen.py .                                                           [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/varLib/models.py .                                                            [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/loggingTools.py ..                                                       [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/_g_l_y_f.py .                                                    [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/bezierTools.py .                                                         [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py .                                                           [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/woff2.py .                                                              [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/cu2qu/cu2qu.py .                                                              [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/unicodedata/__init__.py .                                                     [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/_g_l_y_f.py .                                                    [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/varLib/featureVars.py .                                                       [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ufoLib/validators.py .                                                        [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/bezierTools.py ..                                                        [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/pens/recordingPen.py .                                                        [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ufoLib/glifLib.py .                                                           [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/classifyTools.py .                                                       [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ufoLib/filenames.py .                                                         [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/bezierTools.py .                                                         [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/woff2.py .                                                              [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py .                                                           [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/sfnt.py .                                                               [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/cffLib/specializer.py .                                                       [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/varLib/featureVars.py .                                                       [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/loggingTools.py .                                                        [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/fixedTools.py .                                                          [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/filenames.py .                                                           [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py .                                                           [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/ttProgram.py .                                                   [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/fixedTools.py .                                                          [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/_a_v_a_r.py s                                                    [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/eexec.py .                                                               [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/ufoLib/__init__.py .                                                          [ 32%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py .                                                           [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/filenames.py .                                                           [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/ufoLib/converters.py .                                                        [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/ufoLib/validators.py .                                                        [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py .                                                           [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/arrayTools.py .                                                          [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/ufoLib/filenames.py .                                                         [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/O_S_2f_2.py .                                                    [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/bezierTools.py .                                                         [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/unicodedata/__init__.py .                                                     [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py .                                                           [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/bezierTools.py .                                                         [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/arrayTools.py .                                                          [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/_g_l_y_f.py .                                                    [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/pens/recordingPen.py .                                                        [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/eexec.py .                                                               [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/varLib/models.py .                                                            [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/fixedTools.py .                                                          [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/ufoLib/converters.py .                                                        [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/ufoLib/filenames.py .                                                         [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/fixedTools.py .                                                          [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/pens/roundingPen.py .                                                         [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py .                                                           [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/pens/svgPathPen.py ..                                                         [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/textTools.py .                                                           [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/woff2.py .                                                              [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/bezierTools.py .                                                         [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py .                                                           [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/ufoLib/utils.py .                                                             [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/pens/explicitClosingLinePen.py .                                              [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/pens/filterPen.py .                                                           [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py ...                                                         [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/loggingTools.py .                                                        [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/varLib/models.py .                                                            [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/tfmLib.py .                                                                   [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/bezierTools.py ..                                                        [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/pens/transformPen.py .                                                        [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/_g_l_y_f.py .                                                    [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/bezierTools.py .                                                         [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/intTools.py .                                                            [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/timeTools.py .                                                           [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/_g_l_y_f.py .                                                    [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/pens/svgPathPen.py .                                                          [ 33%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/roundTools.py .                                                          [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py .                                                           [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/bezierTools.py .                                                         [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/unicodedata/__init__.py .                                                     [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/_g_l_y_f.py .                                                    [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/fixedTools.py .                                                          [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/arrayTools.py .                                                          [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/afmLib.py .                                                                   [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/pens/svgPathPen.py .                                                          [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/fixedTools.py .                                                          [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/ufoLib/validators.py .                                                        [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/woff2.py .                                                              [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/bezierTools.py .                                                         [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/_f_p_g_m.py .                                                    [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/ttLib/tables/_g_l_y_f.py .                                                    [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/fixedTools.py .                                                          [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py .                                                           [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/varLib/models.py .                                                            [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/transform.py .                                                           [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/bezierTools.py .                                                         [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/filenames.py .                                                           [ 34%]
.tox/py313/lib/python3.13/site-packages/fontTools/misc/bezierTools.py .                                                         [ 34%]
Tests/designspaceLib/designspace_v5_test.py .....................                                                               [ 34%]
Tests/misc/psCharStrings_test.py .........                                                                                      [ 35%]
Tests/ttLib/tables/_m_o_r_x_test.py .............                                                                               [ 35%]
Tests/misc/encodingTools_test.py ....                                                                                           [ 35%]
Tests/ufoLib/glifLib_test.py ...................                                                                                [ 35%]
Tests/misc/filenames_test.py ......                                                                                             [ 36%]
Tests/pens/boundsPen_test.py ..........                                                                                         [ 36%]
Tests/pens/freetypePen_test.py ...........                                                                                      [ 36%]
Tests/misc/macRes_test.py ..s                                                                                                   [ 36%]
Tests/ufoLib/ufoLib_test.py ........                                                                                            [ 36%]
Tests/ttLib/tables/D__e_b_g_test.py .                                                                                           [ 36%]
Tests/cu2qu/ufo_test.py ...........................                                                                             [ 37%]
Tests/cffLib/specializer_test.py .............................................................................................. [ 39%]
................................................................................                                                [ 41%]
Tests/ttLib/tables/_o_p_b_d_test.py .....                                                                                       [ 41%]
Tests/ttLib/tables/otBase_test.py ................                                                                              [ 41%]
Tests/ttLib/tables/M_V_A_R_test.py ...                                                                                          [ 41%]
Tests/misc/transform_test.py ........................................................                                           [ 42%]
Tests/pens/areaPen_test.py .........                                                                                            [ 43%]
Tests/ttLib/tables/_l_c_a_r_test.py ....                                                                                        [ 43%]
Tests/otlLib/maxContextCalc_test.py ......                                                                                      [ 43%]
Tests/varLib/interpolate_layout_test.py ..........................                                                              [ 43%]
Tests/ufoLib/GLIF2_test.py ..............................................................................................       [ 45%]
Tests/merge/merge_test.py .....................................                                                                 [ 46%]
Tests/ttLib/tables/S_V_G__test.py .....                                                                                         [ 46%]
Tests/otlLib/optimize_test.py .......                                                                                           [ 46%]
Tests/ttLib/tables/V_A_R_C_test.py ..                                                                                           [ 46%]
Tests/pens/pointInsidePen_test.py ............                                                                                  [ 47%]
Tests/subset/svg_test.py ....................                                                                                   [ 47%]
Tests/ttLib/tables/ttProgram_test.py .....                                                                                      [ 47%]
Tests/svgLib/path/shapes_test.py ..................                                                                             [ 48%]
Tests/pens/cocoaPen_test.py ss                                                                                                  [ 48%]
Tests/misc/bezierTools_test.py ........................                                                                         [ 48%]
Tests/pens/roundingPen_test.py ....                                                                                             [ 48%]
Tests/config_test.py ......................                                                                                     [ 49%]
Tests/ttLib/tables/_g_l_y_f_test.py .........................................................                                   [ 50%]
Tests/ufoLib/UFO1_test.py ......                                                                                                [ 50%]
Tests/ttLib/tables/_f_p_g_m_test.py ...                                                                                         [ 50%]
Tests/misc/arrayTools_test.py ...............                                                                                   [ 51%]
Tests/ttLib/main_test.py .........                                                                                              [ 51%]
Tests/subset/subset_test.py ..s........................................................................................         [ 53%]
Tests/designspaceLib/split_test.py ..............                                                                               [ 53%]
Tests/ttLib/tables/_h_m_t_x_test.py .................                                                                           [ 53%]
Tests/varLib/models_test.py ..........................................                                                          [ 54%]
Tests/ttLib/tables/_h_h_e_a_test.py ...........                                                                                 [ 55%]
Tests/ttLib/reorderGlyphs_test.py .......                                                                                       [ 55%]
Tests/ufoLib/UFOConversion_test.py ...                                                                                          [ 55%]
Tests/feaLib/parser_test.py ................................................................................................... [ 57%]
............................................................................................................                    [ 59%]
Tests/encodings/codecs_test.py ....                                                                                             [ 59%]
Tests/ttLib/tables/C_B_L_C_test.py .                                                                                            [ 59%]
Tests/ttLib/tables/_g_v_a_r_test.py ...........                                                                                 [ 60%]
Tests/ufoLib/UFOZ_test.py ....                                                                                                  [ 60%]
Tests/varLib/varStore_test.py ...................                                                                               [ 60%]
Tests/agl_test.py ......                                                                                                        [ 60%]
Tests/pens/basePen_test.py ................                                                                                     [ 61%]
Tests/ttLib/tables/_c_m_a_p_test.py ...............                                                                             [ 61%]
Tests/voltLib/lexer_test.py ....                                                                                                [ 61%]
Tests/afmLib/afmLib_test.py ..                                                                                                  [ 61%]
Tests/feaLib/builder_test.py .................................................................................................. [ 63%]
............................................................................................................................... [ 66%]
.........................................................................................                                       [ 68%]
Tests/colorLib/unbuilder_test.py ..                                                                                             [ 68%]
Tests/ttLib/tables/S_T_A_T_test.py ........                                                                                     [ 68%]
Tests/pens/pointPen_test.py ............................                                                                        [ 69%]
Tests/varLib/merger_test.py .......................                                                                             [ 69%]
Tests/voltLib/parser_test.py .....................................................................                              [ 71%]
Tests/varLib/mutator_test.py ....                                                                                               [ 71%]
Tests/varLib/interpolatable_test.py ............                                                                                [ 71%]
Tests/colorLib/builder_test.py .................................................................................                [ 73%]
Tests/pens/ttGlyphPen_test.py ........................................                                                          [ 74%]
Tests/mtiLib/mti_test.py ..............................                                                                         [ 74%]
Tests/misc/treeTools_test.py ..........................                                                                         [ 75%]
Tests/ttLib/tables/_f_v_a_r_test.py ................                                                                            [ 75%]
Tests/misc/xmlWriter_test.py ................                                                                                   [ 76%]
Tests/ttLib/tables/_t_r_a_k_test.py ................                                                                            [ 76%]
Tests/varLib/featureVars_test.py .........                                                                                      [ 76%]
Tests/pens/hashPointPen_test.py ........                                                                                        [ 76%]
Tests/cffLib/cffLib_test.py ........                                                                                            [ 76%]
Tests/misc/fixedTools_test.py ..........                                                                                        [ 77%]
Tests/ttx/ttx_test.py ...................................................................................                       [ 79%]
Tests/ttLib/tables/_g_c_i_d_test.py ..                                                                                          [ 79%]
Tests/ttLib/tables/_m_o_r_t_test.py ..                                                                                          [ 79%]
Tests/ttLib/tables/_n_a_m_e_test.py .........................................                                                   [ 79%]
Tests/varLib/instancer/instancer_test.py ...................................................................................... [ 81%]
............................................................................................................................... [ 84%]
...................                                                                                                             [ 85%]
Tests/ufoLib/GLIF1_test.py .............................................................                                        [ 86%]
Tests/ttLib/removeOverlaps_test.py ..                                                                                           [ 86%]
Tests/misc/visitor_test.py ..                                                                                                   [ 86%]
Tests/pens/filterPen_test.py ................                                                                                   [ 86%]
Tests/ttLib/ttFont_test.py .......................                                                                              [ 87%]
Tests/misc/loggingTools_test.py .........                                                                                       [ 87%]
Tests/feaLib/ast_test.py ......                                                                                                 [ 87%]
Tests/ufoLib/UFO2_test.py ..................                                                                                    [ 88%]
Tests/ttLib/sfnt_test.py ......                                                                                                 [ 88%]
Tests/ttLib/tables/T_S_I__5_test.py ......                                                                                      [ 88%]
Tests/feaLib/error_test.py ..                                                                                                   [ 88%]
Tests/ttLib/tables/_k_e_r_n_test.py ....................                                                                        [ 88%]
Tests/pens/recordingPen_test.py ....                                                                                            [ 88%]
Tests/ttLib/tables/_l_t_a_g_test.py ....                                                                                        [ 88%]
Tests/varLib/stat_test.py ....                                                                                                  [ 89%]
Tests/ttLib/tables/C_F_F_test.py ..                                                                                             [ 89%]
Tests/cu2qu/cli_test.py ..........                                                                                              [ 89%]
Tests/unicodedata_test.py ........                                                                                              [ 89%]
Tests/tfmLib/tfmLib_test.py .......                                                                                             [ 89%]
Tests/varLib/instancer/solver_test.py ................................                                                          [ 90%]
Tests/pens/t2CharStringPen_test.py ..........                                                                                   [ 90%]
Tests/otlLib/builder_test.py .............................................................................                      [ 92%]
Tests/fontBuilder/fontBuilder_test.py ................                                                                          [ 92%]
Tests/designspaceLib/designspace_test.py ...........................                                                            [ 93%]
Tests/pens/reverseContourPen_test.py .................................................................                          [ 94%]
Tests/ttLib/tables/TupleVariation_test.py ...............................................................                       [ 95%]
Tests/ttLib/tables/_a_v_a_r_test.py ......                                                                                      [ 96%]
Tests/pens/quartzPen_test.py ss                                                                                                 [ 96%]
Tests/varLib/varLib_test.py ....................................................................                                [ 97%]
Tests/misc/py23_test.py ...........................                                                                             [ 98%]
Tests/ttLib/tables/_v_h_e_a_test.py ...................                                                                         [ 98%]
Tests/misc/testTools_test.py .....                                                                                              [ 98%]
Tests/qu2cu/qu2cu_cli_test.py ....                                                                                              [ 98%]
Tests/varLib/hvar_test.py .                                                                                                     [ 98%]
Tests/feaLib/lexer_test.py ......................                                                                               [ 99%]
Tests/varLib/instancer/names_test.py ....................                                                                       [ 99%]
Tests/otlLib/mock_builder_test.py ..                                                                                            [ 99%]
Tests/ttLib/tables/C_P_A_L_test.py ............                                                                                 [ 99%]
Tests/misc/classifyTools_test.py .                                                                                              [100%]

============================================================== FAILURES ===============================================================
___________________________________________ ToFeaTest.test_substitution_single_in_contexts ____________________________________________

self = <volttofea_test.ToFeaTest testMethod=test_substitution_single_in_contexts>

    def test_substitution_single_in_contexts(self):
>       fea = self.parse(
            'DEF_GROUP "Hebrew" ENUM GLYPH "uni05D0" GLYPH "uni05D1" '
            "END_ENUM END_GROUP\n"
            'DEF_LOOKUP "HebrewCurrency" PROCESS_BASE PROCESS_MARKS ALL '
            "DIRECTION LTR\n"
            "IN_CONTEXT\n"
            'RIGHT GROUP "Hebrew"\n'
            'RIGHT GLYPH "one.Hebr"\n'
            "END_CONTEXT\n"
            "IN_CONTEXT\n"
            'LEFT GROUP "Hebrew"\n'
            'LEFT GLYPH "one.Hebr"\n'
            "END_CONTEXT\n"
            "AS_SUBSTITUTION\n"
            'SUB GLYPH "dollar"\n'
            'WITH GLYPH "dollar.Hebr"\n'
            "END_SUB\n"
            "END_SUBSTITUTION"
        )

Tests/voltLib/volttofea_test.py:507: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Tests/voltLib/volttofea_test.py:1890: in parse
    return VoltToFea(StringIO(text)).convert()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/py313/lib/python3.13/site-packages/fontTools/voltLib/voltToFea.py:278: in convert
    return fea.asFea()
           ^^^^^^^^^^^
.tox/py313/lib/python3.13/site-packages/fontTools/feaLib/ast.py:372: in asFea
    return "\n".join(s.asFea(indent=indent) for s in self.statements)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/py313/lib/python3.13/site-packages/fontTools/feaLib/ast.py:372: in <genexpr>
    return "\n".join(s.asFea(indent=indent) for s in self.statements)
                     ^^^^^^^^^^^^^^^^^^^^^^
.tox/py313/lib/python3.13/site-packages/fontTools/feaLib/ast.py:444: in asFea
    res += Block.asFea(self, indent=indent)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/py313/lib/python3.13/site-packages/fontTools/feaLib/ast.py:358: in asFea
    + ("\n" + indent).join([s.asFea(indent=indent) for s in self.statements])
                            ^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <fontTools.feaLib.ast.ChainContextSubstStatement object at 0x7f41819b2e40>, indent = '    '

    def asFea(self, indent=""):
        res = "sub "
        if (
            len(self.prefix)
            or len(self.suffix)
            or any([x is not None for x in self.lookups])
        ):
            if len(self.prefix):
                res += " ".join(g.asFea() for g in self.prefix) + " "
            for i, g in enumerate(self.glyphs):
                res += g.asFea() + "'"
                if self.lookups[i]:
>                   for lu in self.lookups[i]:
                              ^^^^^^^^^^^^^^^
E                   TypeError: 'LookupBlock' object is not iterable

.tox/py313/lib/python3.13/site-packages/fontTools/feaLib/ast.py:805: TypeError
_____________________________________________________ ToFeaTest.test_nested_enum ______________________________________________________

self = <volttofea_test.ToFeaTest testMethod=test_nested_enum>

    def test_nested_enum(self):
>       fea = self.parse(
            """
            DEF_GLYPH "a" ID 1 END_GLYPH
            DEF_GLYPH "b" ID 2 END_GLYPH
            DEF_GLYPH "c" ID 3 END_GLYPH
            DEF_GLYPH "d" ID 4 END_GLYPH
            DEF_GLYPH "e" ID 5 END_GLYPH
            DEF_GLYPH "f" ID 6 END_GLYPH
            DEF_GLYPH "g" ID 7 END_GLYPH
            DEF_GLYPH "h" ID 8 END_GLYPH
            DEF_GLYPH "i" ID 9 END_GLYPH
            DEF_GLYPH "j" ID 10 END_GLYPH
            DEF_GLYPH "k" ID 11 END_GLYPH
            DEF_GLYPH "l" ID 12 END_GLYPH
            DEF_GLYPH "m" ID 13 END_GLYPH
            DEF_GLYPH "n" ID 14 END_GLYPH
            DEF_GLYPH "o" ID 15 END_GLYPH
            DEF_GLYPH "p" ID 16 END_GLYPH
            DEF_GLYPH "q" ID 17 END_GLYPH
            DEF_LOOKUP "lookup" PROCESS_BASE SKIP_MARKS DIRECTION RTL
            IN_CONTEXT
              RIGHT GLYPH "space"
            END_CONTEXT
            AS_POSITION
            ADJUST_SINGLE
              ENUM GLYPH "a" GLYPH "b" END_ENUM BY POS ADV -10 DX -10 END_POS
              ENUM GLYPH "c" GLYPH "d" END_ENUM BY POS ADV -20 DX -20 END_POS
              ENUM RANGE "e" TO "f" GLYPH "g" RANGE "h" TO "k" GLYPH "l" END_ENUM BY POS ADV -30 DX -40 END_POS
              RANGE "m" TO "q" BY POS ADV -50 DX -60 END_POS
            END_ADJUST
            END_POSITION
            """
        )

Tests/voltLib/volttofea_test.py:1625: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Tests/voltLib/volttofea_test.py:1890: in parse
    return VoltToFea(StringIO(text)).convert()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/py313/lib/python3.13/site-packages/fontTools/voltLib/voltToFea.py:278: in convert
    return fea.asFea()
           ^^^^^^^^^^^
.tox/py313/lib/python3.13/site-packages/fontTools/feaLib/ast.py:372: in asFea
    return "\n".join(s.asFea(indent=indent) for s in self.statements)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/py313/lib/python3.13/site-packages/fontTools/feaLib/ast.py:372: in <genexpr>
    return "\n".join(s.asFea(indent=indent) for s in self.statements)
                     ^^^^^^^^^^^^^^^^^^^^^^
.tox/py313/lib/python3.13/site-packages/fontTools/feaLib/ast.py:444: in asFea
    res += Block.asFea(self, indent=indent)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/py313/lib/python3.13/site-packages/fontTools/feaLib/ast.py:358: in asFea
    + ("\n" + indent).join([s.asFea(indent=indent) for s in self.statements])
                            ^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <fontTools.feaLib.ast.ChainContextPosStatement object at 0x7f41819b1fd0>, indent = '    '

    def asFea(self, indent=""):
        res = "pos "
        if (
            len(self.prefix)
            or len(self.suffix)
            or any([x is not None for x in self.lookups])
        ):
            if len(self.prefix):
                res += " ".join(g.asFea() for g in self.prefix) + " "
            for i, g in enumerate(self.glyphs):
                res += g.asFea() + "'"
                if self.lookups[i]:
>                   for lu in self.lookups[i]:
                              ^^^^^^^^^^^^^^^
E                   TypeError: 'LookupBlock' object is not iterable

.tox/py313/lib/python3.13/site-packages/fontTools/feaLib/ast.py:747: TypeError
____________________________________________ ToFeaTest.test_substitution_single_in_context ____________________________________________

self = <volttofea_test.ToFeaTest testMethod=test_substitution_single_in_context>

    def test_substitution_single_in_context(self):
>       fea = self.parse(
            'DEF_GROUP "Denominators" ENUM GLYPH "one.dnom" GLYPH "two.dnom" '
            "END_ENUM END_GROUP\n"
            'DEF_LOOKUP "fracdnom" PROCESS_BASE PROCESS_MARKS ALL '
            "DIRECTION LTR\n"
            'IN_CONTEXT LEFT ENUM GROUP "Denominators" GLYPH "fraction" '
            "END_ENUM\n"
            "END_CONTEXT\n"
            "AS_SUBSTITUTION\n"
            'SUB GLYPH "one"\n'
            'WITH GLYPH "one.dnom"\n'
            "END_SUB\n"
            'SUB GLYPH "two"\n'
            'WITH GLYPH "two.dnom"\n'
            "END_SUB\n"
            "END_SUBSTITUTION"
        )

Tests/voltLib/volttofea_test.py:469: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Tests/voltLib/volttofea_test.py:1890: in parse
    return VoltToFea(StringIO(text)).convert()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/py313/lib/python3.13/site-packages/fontTools/voltLib/voltToFea.py:278: in convert
    return fea.asFea()
           ^^^^^^^^^^^
.tox/py313/lib/python3.13/site-packages/fontTools/feaLib/ast.py:372: in asFea
    return "\n".join(s.asFea(indent=indent) for s in self.statements)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/py313/lib/python3.13/site-packages/fontTools/feaLib/ast.py:372: in <genexpr>
    return "\n".join(s.asFea(indent=indent) for s in self.statements)
                     ^^^^^^^^^^^^^^^^^^^^^^
.tox/py313/lib/python3.13/site-packages/fontTools/feaLib/ast.py:444: in asFea
    res += Block.asFea(self, indent=indent)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/py313/lib/python3.13/site-packages/fontTools/feaLib/ast.py:358: in asFea
    + ("\n" + indent).join([s.asFea(indent=indent) for s in self.statements])
                            ^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <fontTools.feaLib.ast.ChainContextSubstStatement object at 0x7f41819091d0>, indent = '    '

    def asFea(self, indent=""):
        res = "sub "
        if (
            len(self.prefix)
            or len(self.suffix)
            or any([x is not None for x in self.lookups])
        ):
            if len(self.prefix):
                res += " ".join(g.asFea() for g in self.prefix) + " "
            for i, g in enumerate(self.glyphs):
                res += g.asFea() + "'"
                if self.lookups[i]:
>                   for lu in self.lookups[i]:
                              ^^^^^^^^^^^^^^^
E                   TypeError: 'LookupBlock' object is not iterable

.tox/py313/lib/python3.13/site-packages/fontTools/feaLib/ast.py:805: TypeError
[-- cut due to char limit -- other tracebacks are roughly the same --]
========================================================== warnings summary ===========================================================
.tox/py313/lib/python3.13/site-packages/fontTools/misc/py23.py:13
  /tmp/fonttools/.tox/py313/lib/python3.13/site-packages/fontTools/misc/py23.py:13: DeprecationWarning: The py23 module has been deprecated and will be removed in a future release. Please update your code.
    warnings.warn(

Tests/misc/plistlib_test.py: 18 warnings
  /tmp/fonttools/.tox/py313/lib/python3.13/site-packages/fontTools/misc/plistlib/__init__.py:195: DeprecationWarning: Setting use_builtin_types to False is deprecated and will be removed soon.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
======================================================= short test summary info =======================================================
SKIPPED [1] .tox/py313/lib/python3.13/site-packages/_pytest/doctest.py:569: unable to import module PosixPath('/tmp/fonttools/.tox/py313/lib/python3.13/site-packages/fontTools/pens/quartzPen.py')
SKIPPED [1] .tox/py313/lib/python3.13/site-packages/_pytest/doctest.py:569: unable to import module PosixPath('/tmp/fonttools/.tox/py313/lib/python3.13/site-packages/fontTools/pens/reportLabPen.py')
SKIPPED [1] .tox/py313/lib/python3.13/site-packages/_pytest/doctest.py:569: unable to import module PosixPath('/tmp/fonttools/.tox/py313/lib/python3.13/site-packages/fontTools/varLib/interpolatablePlot.py')
SKIPPED [1] .tox/py313/lib/python3.13/site-packages/_pytest/doctest.py:569: unable to import module PosixPath('/tmp/fonttools/.tox/py313/lib/python3.13/site-packages/fontTools/varLib/plot.py')
SKIPPED [1] Tests/misc/timeTools_test.py:38: Locale de_DE not available
SKIPPED [1] .tox/py313/lib/python3.13/site-packages/_pytest/doctest.py:458: all tests skipped by +SKIP option
SKIPPED [1] Tests/misc/macRes_test.py:66: Not supported on "linux"
SKIPPED [1] Tests/pens/cocoaPen_test.py:43: pyobjc not installed
SKIPPED [1] Tests/pens/cocoaPen_test.py:51: pyobjc not installed
SKIPPED [1] Tests/subset/subset_test.py:1859: lxml is installed
SKIPPED [1] Tests/pens/quartzPen_test.py:71: pyobjc not installed
SKIPPED [1] Tests/pens/quartzPen_test.py:63: pyobjc not installed
XFAIL Tests/misc/plistlib_test.py::test_apple_formatting[builtin=True] - we use two spaces, Apple uses tabs
XFAIL Tests/misc/plistlib_test.py::test_apple_formatting[builtin=False] - we use two spaces, Apple uses tabs
FAILED Tests/voltLib/volttofea_test.py::ToFeaTest::test_substitution_single_in_contexts - TypeError: 'LookupBlock' object is not iterable
FAILED Tests/voltLib/volttofea_test.py::ToFeaTest::test_nested_enum - TypeError: 'LookupBlock' object is not iterable
FAILED Tests/voltLib/volttofea_test.py::ToFeaTest::test_substitution_single_in_context - TypeError: 'LookupBlock' object is not iterable
FAILED Tests/voltLib/volttofea_test.py::ToFeaTest::test_position_attach_in_context - TypeError: 'LookupBlock' object is not iterable
FAILED Tests/voltLib/volttofea_test.py::ToFeaTest::test_group_order - TypeError: 'LookupBlock' object is not iterable
FAILED Tests/voltLib/volttofea_test.py::ToFeaTest::test_cli_ttf - TypeError: 'LookupBlock' object is not iterable
FAILED Tests/voltLib/volttofea_test.py::ToFeaTest::test_position_adjust_single_in_context - TypeError: 'LookupBlock' object is not iterable
FAILED Tests/voltLib/volttofea_test.py::ToFeaTest::test_position_adjust_pair_in_context - TypeError: 'LookupBlock' object is not iterable
FAILED Tests/voltLib/volttofea_test.py::ToFeaTest::test_substitution_single_except_context - TypeError: 'LookupBlock' object is not iterable
FAILED Tests/voltLib/volttofea_test.py::ToFeaTest::test_cli_vtp - TypeError: 'LookupBlock' object is not iterable
FAILED Tests/voltLib/volttofea_test.py::ToFeaTest::test_substitution_no_reversal - TypeError: 'LookupBlock' object is not iterable
================================ 11 failed, 4582 passed, 12 skipped, 2 xfailed, 19 warnings in 45.37s =================================
py313: exit 1 (46.83 seconds) /tmp/fonttools> pytest Tests fontTools pid=204863
  py313: FAIL code 1 (101.60=setup[54.75]+cmd[0.03,46.83] seconds)
  evaluation failed :( (102.08 seconds)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions