Pip: El conjunto de pruebas falla la recopilación debido a la verificación de svn

Creado en 29 mar. 2020  ·  7Comentarios  ·  Fuente: pypa/pip

Ambiente

  • versión pip: 720c77aa
  • Versión de Python: 3.8.1
  • SO: macOS Catalina 10.15.4

Descripción

Esta semana, actualicé a macOS 10.15.4. Ahora, cuando ejecuto svn --version , veo este error:

pip master $ svn --version                                                                                                                                                
svn: error: Failed to locate 'svn'.
svn: error: The subversion command line tools are no longer provided by Xcode.

Cuando ejecuto el conjunto de pruebas pip, veo errores similares durante el descubrimiento de pruebas, lo que hace que no se ejecute todo el conjunto de pruebas.

Comportamiento esperado

Las pruebas para svn realmente no deberían bloquear las pruebas.

Cómo reproducir

Presumiblemente:

  1. Actualice a macOS 10.15.4.
  2. Ejecute tox .

Producción

$ tox
GLOB sdist-make: /Users/jaraco/code/public/pypa/pip/setup.py
python inst-nodeps: /Users/jaraco/code/public/pypa/pip/.tox/.tmp/package/1/pip-20.1.dev0.zip
python installed: apipkg==1.5,atomicwrites==1.3.0,attrs==19.3.0,cffi==1.14.0,coverage==5.0.4,cryptography==2.8,csv23==0.2,execnet==1.7.1,freezegun==0.3.15,mock==4.0.2,more-itertools==8.2.0,pip==20.1.dev0,pluggy==0.13.1,pretend==1.0.9,py==1.8.1,pycparser==2.20,pytest==3.8.2,pytest-cov==2.8.1,pytest-forked==1.1.3,pytest-rerunfailures==6.0,pytest-timeout==1.3.4,pytest-xdist==1.27.0,python-dateutil==2.8.1,PyYAML==5.3.1,scripttest==1.3,setuptools==41.2.0,six==1.14.0,virtualenv==16.7.10,Werkzeug==0.16.0,wheel==0.34.2
python run-test-pre: PYTHONHASHSEED='1630556793'
python run-test-pre: commands[0] | python -c 'import shutil, sys; shutil.rmtree(sys.argv[1], ignore_errors=True)' /Users/jaraco/code/public/pypa/pip/tests/data/common_wheels
python run-test-pre: commands[1] | python /Users/jaraco/code/public/pypa/pip/tools/tox_pip.py wheel -w /Users/jaraco/code/public/pypa/pip/tests/data/common_wheels -r /Users/jaraco/code/public/pypa/pip/tools/requirements/tests-common_wheels.txt
Collecting setuptools>=40.8.0
  Using cached setuptools-46.1.3-py3-none-any.whl (582 kB)
  Saved ./tests/data/common_wheels/setuptools-46.1.3-py3-none-any.whl
Collecting wheel
  Using cached wheel-0.34.2-py2.py3-none-any.whl (26 kB)
  Saved ./tests/data/common_wheels/wheel-0.34.2-py2.py3-none-any.whl
Skipping setuptools, due to already being wheel.
Skipping wheel, due to already being wheel.
python run-test: commands[0] | pytest --timeout 300
============================= test session starts ==============================
platform darwin -- Python 3.8.1, pytest-3.8.2, py-1.8.1, pluggy-0.13.1
rootdir: /Users/jaraco/code/public/pypa/pip, inifile: setup.cfg
plugins: timeout-1.3.4, rerunfailures-6.0, forked-1.1.3, cov-2.8.1, xdist-1.27.0
timeout: 300.0s
timeout method: signal
timeout func_only: False
collected 1533 items / 7 errors

==================================== ERRORS ====================================
_______________ ERROR collecting tests/functional/test_freeze.py _______________
tests/functional/test_freeze.py:175: in <module>
    def test_freeze_svn(script, tmpdir):
tests/lib/__init__.py:1112: in need_svn
    return pytest.mark.svn(need_executable(
tests/lib/__init__.py:1081: in wrapper
    subprocess.check_output(check_cmd)
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py:411: in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py:512: in run
    raise CalledProcessError(retcode, process.args,
E   subprocess.CalledProcessError: Command '('svn', '--version')' returned non-zero exit status 72.
------------------------------- Captured stderr --------------------------------
svn: error: Failed to locate 'svn'.
svn: error: The subversion command line tools are no longer provided by Xcode.
______________ ERROR collecting tests/functional/test_install.py _______________
tests/functional/test_install.py:272: in <module>
    def test_basic_install_editable_from_svn(script):
tests/lib/__init__.py:1112: in need_svn
    return pytest.mark.svn(need_executable(
tests/lib/__init__.py:1081: in wrapper
    subprocess.check_output(check_cmd)
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py:411: in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py:512: in run
    raise CalledProcessError(retcode, process.args,
E   subprocess.CalledProcessError: Command '('svn', '--version')' returned non-zero exit status 72.
------------------------------- Captured stderr --------------------------------
svn: error: Failed to locate 'svn'.
svn: error: The subversion command line tools are no longer provided by Xcode.
____________ ERROR collecting tests/functional/test_install_reqs.py ____________
tests/functional/test_install_reqs.py:116: in <module>
    def test_multiple_requirements_files(script, tmpdir):
tests/lib/__init__.py:1112: in need_svn
    return pytest.mark.svn(need_executable(
tests/lib/__init__.py:1081: in wrapper
    subprocess.check_output(check_cmd)
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py:411: in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py:512: in run
    raise CalledProcessError(retcode, process.args,
E   subprocess.CalledProcessError: Command '('svn', '--version')' returned non-zero exit status 72.
------------------------------- Captured stderr --------------------------------
svn: error: Failed to locate 'svn'.
svn: error: The subversion command line tools are no longer provided by Xcode.
____________ ERROR collecting tests/functional/test_install_user.py ____________
tests/functional/test_install_user.py:28: in <module>
    class Tests_UserSite:
tests/functional/test_install_user.py:48: in Tests_UserSite
    def test_install_subversion_usersite_editable_with_distribute(
tests/lib/__init__.py:1112: in need_svn
    return pytest.mark.svn(need_executable(
tests/lib/__init__.py:1081: in wrapper
    subprocess.check_output(check_cmd)
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py:411: in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py:512: in run
    raise CalledProcessError(retcode, process.args,
E   subprocess.CalledProcessError: Command '('svn', '--version')' returned non-zero exit status 72.
------------------------------- Captured stderr --------------------------------
svn: error: Failed to locate 'svn'.
svn: error: The subversion command line tools are no longer provided by Xcode.
_____________ ERROR collecting tests/functional/test_uninstall.py ______________
tests/functional/test_uninstall.py:325: in <module>
    def test_uninstall_editable_from_svn(script, tmpdir):
tests/lib/__init__.py:1112: in need_svn
    return pytest.mark.svn(need_executable(
tests/lib/__init__.py:1081: in wrapper
    subprocess.check_output(check_cmd)
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py:411: in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py:512: in run
    raise CalledProcessError(retcode, process.args,
E   subprocess.CalledProcessError: Command '('svn', '--version')' returned non-zero exit status 72.
------------------------------- Captured stderr --------------------------------
svn: error: Failed to locate 'svn'.
svn: error: The subversion command line tools are no longer provided by Xcode.
___________ ERROR collecting tests/functional/test_uninstall_user.py ___________
tests/functional/test_uninstall_user.py:8: in <module>
    from tests.functional.test_install_user import _patch_dist_in_site_packages
<frozen importlib._bootstrap>:991: in _find_and_load
    ???
<frozen importlib._bootstrap>:975: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:655: in _load_unlocked
    ???
<frozen importlib._bootstrap>:618: in _load_backward_compatible
    ???
.tox/python/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:290: in load_module
    six.exec_(co, mod.__dict__)
tests/functional/test_install_user.py:28: in <module>
    class Tests_UserSite:
tests/functional/test_install_user.py:48: in Tests_UserSite
    def test_install_subversion_usersite_editable_with_distribute(
tests/lib/__init__.py:1112: in need_svn
    return pytest.mark.svn(need_executable(
tests/lib/__init__.py:1081: in wrapper
    subprocess.check_output(check_cmd)
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py:411: in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py:512: in run
    raise CalledProcessError(retcode, process.args,
E   subprocess.CalledProcessError: Command '('svn', '--version')' returned non-zero exit status 72.
------------------------------- Captured stderr --------------------------------
svn: error: Failed to locate 'svn'.
svn: error: The subversion command line tools are no longer provided by Xcode.
___________________ ERROR collecting tests/unit/test_vcs.py ____________________
tests/unit/test_vcs.py:415: in <module>
    def test_subversion__call_vcs_version():
tests/lib/__init__.py:1112: in need_svn
    return pytest.mark.svn(need_executable(
tests/lib/__init__.py:1081: in wrapper
    subprocess.check_output(check_cmd)
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py:411: in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py:512: in run
    raise CalledProcessError(retcode, process.args,
E   subprocess.CalledProcessError: Command '('svn', '--version')' returned non-zero exit status 72.
------------------------------- Captured stderr --------------------------------
svn: error: Failed to locate 'svn'.
svn: error: The subversion command line tools are no longer provided by Xcode.
=========================== short test summary info ============================
ERROR tests/functional/test_freeze.py
ERROR tests/functional/test_install.py
ERROR tests/functional/test_install_reqs.py
ERROR tests/functional/test_install_user.py
ERROR tests/functional/test_uninstall.py
ERROR tests/functional/test_uninstall_user.py
ERROR tests/unit/test_vcs.py
!!!!!!!!!!!!!!!!!!! Interrupted: 7 errors during collection !!!!!!!!!!!!!!!!!!!!
=========================== 7 error in 7.96 seconds ============================
ERROR: InvocationError for command /Users/jaraco/code/public/pypa/pip/.tox/python/bin/pytest --timeout 300 (exited with code 2)
___________________________________ summary ____________________________________
ERROR:   python: commands failed
tests auto-locked bug

Todos 7 comentarios

También actualicé XCode a 11.4 esta semana, por lo que puede ser esa actualización y no la actualización de macOS la que está implicada.

Las notas de la versión para XCode 11 dicen:

El soporte de la línea de comandos para Subversion se eliminará en una versión futura. (50195246, 50231958, 50266910, 51740851, 52528748)

El conjunto de pruebas ya tiene la funcionalidad para omitir las pruebas de Mercurial si no está disponible. Probablemente necesitemos hacer lo mismo (o mejorarlo) para esto.

El conjunto de pruebas también hace lo mismo con las pruebas svn. ¿Podría estar sucediendo esto porque solo captura OSError ? Y por el rastreo que se da en el número, parece que arroja un subprocess.CalledProcessError .

En caso afirmativo, ¿la captura de esta excepción debería resolver el problema?

@gutsytechster Sí, me suena bien.

¡Genial! Entonces me gustaría abrir un PR. :)

¿Fue útil esta página
0 / 5 - 0 calificaciones