kiwicom / pytest-recording

A pytest plugin that allows recording network interactions via VCR.py
MIT License
441 stars 35 forks source link

failing tests on fresh repository clone #105

Closed jakkdl closed 1 year ago

jakkdl commented 1 year ago

Describe the bug cloned the repo to contribute a PR or two, and encountered the below issues trying to get tox environments to pass:

urllib3

needs to be pinned below 2 due to https://github.com/kevin1024/vcrpy/issues/688

tox -e pylint

fails with

src/pytest_recording/_vcr.py:35:4: W0221: Number of parameters was 3 in 'FilesystemPersister.load_cassette' and is now 3 in overriding 'CombinedPersister.load_cassette' method (arguments-differ)

seems like a false alarm?

tox -e pypy3

pycurl-7.45.2 fails to build on pypy 7.3.11, haven't figured out if it's pycurl or pypy that need to be pinned.

pypy3: FAIL ✖ in 29.72 seconds
WARNING: Implying --no-binary=:all: due to the presence of --build-option / --global-option / --install-option. Consider using --config-settings for more flexibility.
DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453
  DEPRECATION: pycurl is being installed using the legacy 'setup.py install' method, because the '--no-binary' option was enabled for it and this currently disables local wheel building for projects that don't have a 'pyproject.toml' file. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/11451
  error: subprocess-exited-with-error

  × Running setup.py install for pycurl did not run successfully.
  │ exit code: 1
  ╰─> [53 lines of output]
      Using curl-config (libcurl 8.0.1)
      Using SSL library: OpenSSL/LibreSSL/BoringSSL
      running install
      /home/h/Git/pytest-recording/.tox/pypy3/lib/pypy3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
        warnings.warn(
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-pypy39
      creating build/lib.linux-x86_64-pypy39/curl
      copying python/curl/__init__.py -> build/lib.linux-x86_64-pypy39/curl
      running build_ext
      building 'pycurl' extension
      creating build/temp.linux-x86_64-pypy39
      creating build/temp.linux-x86_64-pypy39/src
      gcc -pthread -DNDEBUG -O2 -fPIC -DPYCURL_VERSION=\"7.45.2\" -DHAVE_CURL_SSL=1 -DHAVE_CURL_OPENSSL=1 -DHAVE_CURL_SSL=1 -DHAVE_CURL_OPENSSL=1 -DHAVE_CURL_SSL=1 -I/home/h/Git/pytest-recording/.tox/pypy3/include -I/opt/pypy3/include/pypy3.9 -c src/docstrings.c -o build/temp.linux-x86_64-pypy39/src/docstrings.o
      gcc -pthread -DNDEBUG -O2 -fPIC -DPYCURL_VERSION=\"7.45.2\" -DHAVE_CURL_SSL=1 -DHAVE_CURL_OPENSSL=1 -DHAVE_CURL_SSL=1 -DHAVE_CURL_OPENSSL=1 -DHAVE_CURL_SSL=1 -I/home/h/Git/pytest-recording/.tox/pypy3/include -I/opt/pypy3/include/pypy3.9 -c src/easy.c -o build/temp.linux-x86_64-pypy39/src/easy.o
      src/easy.c: In function ‘do_curlhttppost_dealloc’:
      src/easy.c:112:9: warning: ‘curl_formfree’ is deprecated: since 7.56.0. Use curl_mime_free() [-Wdeprecated-declarations]
        112 |         curl_formfree(self->httppost);
            |         ^~~~~~~~~~~~~
      In file included from src/pycurl.h:33,
                       from src/easy.c:1:
      /usr/include/curl/curl.h:2612:1: note: declared here
       2612 | curl_formfree(struct curl_httppost *form);
            | ^~~~~~~~~~~~~
      src/easy.c: In function ‘do_curl_duphandle’:
      src/easy.c:382:9: warning: ‘CURLOPT_IOCTLDATA’ is deprecated: since 7.18.0. Use CURLOPT_SEEKDATA [-Wdeprecated-declarations]
        382 |         curl_easy_setopt(dup->handle, CURLOPT_IOCTLDATA, dup);
            |         ^~~~~~~~~~~~~~~~
      /usr/include/curl/curl.h:1583:3: note: declared here
       1583 |   CURLOPTDEPRECATED(CURLOPT_IOCTLDATA, CURLOPTTYPE_CBPOINT, 131,
            |   ^~~~~~~~~~~~~~~~~
      src/easy.c: In function ‘do_curl_dealloc’:
      src/pycurl.h:697:42: warning: implicit declaration of function ‘Py_TRASHCAN_BEGIN’; did you mean ‘CPy_TRASHCAN_BEGIN’? [-Wimplicit-function-declaration]
        697 | # define CPy_TRASHCAN_BEGIN(op, dealloc) Py_TRASHCAN_BEGIN(op, dealloc)
            |                                          ^~~~~~~~~~~~~~~~~
      src/easy.c:609:5: note: in expansion of macro ‘CPy_TRASHCAN_BEGIN’
        609 |     CPy_TRASHCAN_BEGIN(self, do_curl_dealloc);
            |     ^~~~~~~~~~~~~~~~~~
      src/pycurl.h:698:31: error: ‘Py_TRASHCAN_END’ undeclared (first use in this function); did you mean ‘CPy_TRASHCAN_END’?
        698 | # define CPy_TRASHCAN_END(op) Py_TRASHCAN_END
            |                               ^~~~~~~~~~~~~~~
      src/easy.c:615:5: note: in expansion of macro ‘CPy_TRASHCAN_END’
        615 |     CPy_TRASHCAN_END(self);
            |     ^~~~~~~~~~~~~~~~
      src/pycurl.h:698:31: note: each undeclared identifier is reported only once for each function it appears in
        698 | # define CPy_TRASHCAN_END(op) Py_TRASHCAN_END
            |                               ^~~~~~~~~~~~~~~
      src/easy.c:615:5: note: in expansion of macro ‘CPy_TRASHCAN_END’
        615 |     CPy_TRASHCAN_END(self);
            |     ^~~~~~~~~~~~~~~~
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> pycurl

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
Collecting pycurl
  Using cached pycurl-7.45.2.tar.gz (234 kB)
  Preparing metadata (setup.py) ... done
Installing collected packages: pycurl
  Running setup.py install for pycurl ... error
pypy3: exit 1 (7.07 seconds) /home/h/Git/pytest-recording> pip install pycurl --global-option=--with-openssl pid=93808

Environment:

Stranger6667 commented 1 year ago

Resolved via #108