FAILED tests/integration/test_boto.py::test_boto_iam - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV4Handler'] Check your credentials
FAILED tests/integration/test_requests.py::test_status_code[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VER...
FAILED tests/integration/test_requests.py::test_headers[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VER...
FAILED tests/integration/test_requests.py::test_body[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: /bytes/1024 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTI...
FAILED tests/integration/test_requests.py::test_get_empty_content_type_json[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: /status/200 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTI...
FAILED tests/integration/test_requests.py::test_effective_url[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: /redirect-to?url=/html (Caused by SSLError(SSLCertVerificationError(1, '...
FAILED tests/integration/test_requests.py::test_auth[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: /basic-auth/user/passwd (Caused by SSLError(SSLCertVerificationError(1, ...
FAILED tests/integration/test_requests.py::test_auth_failed[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: /basic-auth/user/passwd (Caused by SSLError(SSLCertVerificationError(1, ...
FAILED tests/integration/test_requests.py::test_post[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: /post (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE...
FAILED tests/integration/test_requests.py::test_redirects[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: /redirect-to?url=bytes/1024 (Caused by SSLError(SSLCertVerificationError...
FAILED tests/integration/test_requests.py::test_gzip[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: /gzip (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE...
FAILED tests/integration/test_requests.py::test_session_created_before_use_cassette_is_patched[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: /bytes/1024 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTI...
FAILED tests/integration/test_requests.py::test_nested_cassettes_with_session_created_before_nesting[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: /bytes/1024 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTI...
FAILED tests/integration/test_requests.py::test_post_file[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: /post (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE...
FAILED tests/integration/test_requests.py::test_filter_post_params[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: /post (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE...
FAILED tests/integration/test_requests.py::test_post_unicode_match_on_body[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: /post (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE...
FAILED tests/integration/test_requests.py::test_cross_scheme - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=45907): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VER...
======================================================= 20 failed, 388 passed, 3 skipped, 20 xfailed, 41 warnings in 74.26s (0:01:14) =======================================================

@kloczek there is a probably a problem in how you run the tests, more on that below. Here is how to see the tests pass with plain pytest, starting with an empty venv:
cd "$(mktemp -d)"
wget https://github.com/kevin1024/vcrpy/archive/refs/tags/v4.3.0.tar.gz
tar xf v4.3.0.tar.gz
cd vcrpy-4.3.0/
python3.10 -m venv venv
source venv/bin/activate
pip install -e .
pip install pytest aiohttp boto3 httpx requests pytest-httpbin tornado httplib2 pytest-aiohttp 'urllib3<2' Werkzeug==2.0.3  # NOTE LAST TWO!
REQUESTS_CA_BUNDLE=`python -m pytest_httpbin.certs` pytest -ra  # NOTE REQUESTS_CA_BUNDLE!

Note the two things marked with NOTE in that^^ block.
@kloczek please run the tests this very way and report back any failures. We can then work from there. Thanks :pray:

First of all python -m foo should be never used because python when starts module that way add current directory to sys.path, This is why pytest module provides wrapper script.
No use 'python -m pytest` was discussed hundreds times on pytest forum and maintained many times told that running pytest that way in nothing more than asking for troubles.
Second: I'm not interested to test any module in source tree because after packaging exact module will be NEVER used that way. This is why it was developed "testing as installed" methodology.
Third: I'm not interested to test any module against exact version of other modules taken from pypi.
I'm trying to form set of packaged modules which will be working together in that set. This is why I've added list of modules with versions installed in build env during the testing vcrpy.
Currently that set has +1.13k of packaged modules which are mostly latest version of all modules in that set.
Latest version ot the werkzeug is not 2.0.0 but 2.3.4 (I'll be soon testing everything against 2.3.4).
2.0.0 has been released almost year ago and since than many things has been fixed in that module.
I'm not going to roll back to 2.0.0 in my distribution because this will break many other modules.
Sooner or later you will be probably this or another way forced to use latest version of the werkzeug so maybe now is the best moment to have look on that.
FYI: I'm not complaining or trying to you to force to upgrade werkzeug to latest version.
I'm only reporting how testing with exact set of modules behaves.
Just please try to understand that my goals are embedded in much broader landscape.

Just checked and looks like werkzeug is not on the install time vcrpy dependencies list so if werkzeug is causing that issue looks like it is only test suite issue.

Hi @kloczek,
I don't see how your criticism of python -m applies to our case. All that python -m pytest_httpbin.certs as used above does is produce a filename to a certificate to be put into the environment, e.g. see:
# python -m pytest_httpbin.certs
/tmp/tmp.MLDZlkbUla/vcrpy-4.3.0/venv/lib/python3.10/site-packages/pytest_httpbin/certs/cacert.pem

The call to pytest itself did not use python -m, see above. I don't see how that would be a problem to any test environment, including distro packging. I've been packaging for Linux distros myself, I understand what situation packaging and Linux distros are in regarding Python dependencies. Please let me know what I am missing or misunderstanding here.

The pinning of Werkzeug is unfortunate and caused by httpbin (https://github.com/postmanlabs/httpbin/issues/673) which is pulled in by pytest-httpbin (https://github.com/kevin1024/pytest-httpbin/issues/72). Given that httpbin's last release is of 2017, mid-term fix upstream here is probably to replace all use of httpbin (and httpbin.org) in the current test suite by something else. I will edit the title of this ticket now to better reflect what needs to be done. A short-term fix downstream for Fedora could be fixing httpbin to support Werkzeug >=2.1.0 using pull request https://github.com/postmanlabs/httpbin/pull/674/files which is what Gentoo did.
CC @kevin1024 @jairhenrique

Hmm. I’m a maintainer on httpbin and might be able to move things along over there.

don't see how your criticism of python -m applies to our case.

I'm not criticising anything or trying to connect this case to use 'python -m foo`.
I'm only informing you that pytest generally should be used not that way how you are using it. Only this and nothing more 😋

Hmm. I’m a maintainer on httpbin and might be able to move things along over there.

BTW using certs: IMO it would be good to abandon use custom copies of CA and use system CA (usually now it is /etc/pki/tls/certs/ca-bundle.crt) and/or use certs over certifi modules (which could be easily centrally patched to use system system /etc/pki/tls/certs/ca-bundle.crt).
Just checked my rpm spec filers library which one modules currently are using certify
[tkloczko@pers-jacek SPECS]$ grep "python3dist(certifi)" python*
python-aiohttp-cors.spec:BuildRequires: python3dist(certifi)
python-branca.spec:BuildRequires:       python3dist(certifi)
python-elastic-transport.spec:BuildRequires:    python3dist(certifi)
python-geventhttpclient.spec:BuildRequires:     python3dist(certifi)
python-google-auth.spec:BuildRequires:  python3dist(certifi)
python-httpcore.spec:BuildRequires:     python3dist(certifi)
python-httpx.spec:BuildRequires:        python3dist(certifi)
python-jsonschema.spec:BuildRequires:   python3dist(certifi)
python-matplotlib.spec:BuildRequires:   python3dist(certifi)
python-notebook.spec:BuildRequires:     python3dist(certifi)
python-pdm.spec:BuildRequires:  python3dist(certifi)
python-pip.spec:Provides: bundled(python3dist(certifi)) = 2022.12.7
python-pyppeteer.spec:BuildRequires:    python3dist(certifi)
python-pyproj.spec:BuildRequires:       python3dist(certifi)
python-requests-file.spec:BuildRequires:        python3dist(certifi)
python-selenium.spec:BuildRequires:     python3dist(certifi)
python-seleniumbase.spec:BuildRequires: python3dist(certifi)            >= 2021.10.8
python-sphinx-json-schema-spec.spec:BuildRequires:      python3dist(certifi)
python-sphinxext-rediraffe.spec:BuildRequires:  python3dist(certifi)
python-sphobjinv.spec:BuildRequires:    python3dist(certifi)

Hmm. I’m a maintainer on httpbin and might be able to move things along over there.

@kevin1024 that would rock the house, yes please! :+1: :+1:

I'm not criticising anything or trying to connect this case to use 'python -m foo`. I'm only informing you that pytest generally should be used not that way how you are using it. Only this and nothing more :yum:

@kloczek except there was zero python -m pytest in here above before you brought it up. Zero, I checked.

Just FTR.
Here is summary pytest output on testing 5.0.0:

===================================================================================== warnings summary ======================================================================================
../../../../../usr/lib/python3.8/site-packages/boto/plugin.py:40
  /usr/lib/python3.8/site-packages/boto/plugin.py:40: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
    import imp

tests/integration/test_tornado.py:46
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:46: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:58
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:58: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:70
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:70: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:83
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:83: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:96
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:96: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:111
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:111: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:134
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:134: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:149
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:149: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:161
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:161: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:180
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:180: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:205
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:205: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:217
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:217: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:235
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:235: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:251
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:251: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:267
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:267: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:281
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:281: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:288
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:288: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:302
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:302: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:315
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:315: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:330
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:330: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:46
  tests/integration/test_tornado.py:46: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_status_code will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:58
  tests/integration/test_tornado.py:58: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_headers will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:70
  tests/integration/test_tornado.py:70: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_body will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:83
  tests/integration/test_tornado.py:83: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_effective_url will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:96
  tests/integration/test_tornado.py:96: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_auth will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:111
  tests/integration/test_tornado.py:111: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_auth_failed will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:134
  tests/integration/test_tornado.py:134: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_post will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:149
  tests/integration/test_tornado.py:149: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_redirects will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:161
  tests/integration/test_tornado.py:161: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_cross_scheme will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:180
  tests/integration/test_tornado.py:180: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_gzip will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:205
  tests/integration/test_tornado.py:205: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_https_with_cert_validation_disabled will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:217
  tests/integration/test_tornado.py:217: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_unsupported_features_raises_in_future will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:234
  tests/integration/test_tornado.py:234: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_unsupported_features_raise_error_disabled will be ignored
    @pytest.mark.skipif(not supports_raise_error, reason="raise_error unavailable in tornado <= 3")

tests/integration/test_tornado.py:251
  tests/integration/test_tornado.py:251: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_cannot_overwrite_cassette_raises_in_future will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:266
  tests/integration/test_tornado.py:266: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_cannot_overwrite_cassette_raise_error_disabled will be ignored
    @pytest.mark.skipif(not supports_raise_error, reason="raise_error unavailable in tornado <= 3")

tests/integration/test_tornado.py:281
  tests/integration/test_tornado.py:281: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_tornado_with_decorator_use_cassette will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:288
  tests/integration/test_tornado.py:288: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_tornado_exception_can_be_caught will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:302
  tests/integration/test_tornado.py:302: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_existing_references_get_patched will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:315
  tests/integration/test_tornado.py:315: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_existing_instances_get_patched will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:330
  tests/integration/test_tornado.py:330: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_request_time_is_set will be ignored
    @pytest.mark.gen_test

tests/integration/test_requests.py::test_effective_url[http]
tests/integration/test_requests.py::test_redirects[http]
  /usr/lib/python3.8/site-packages/werkzeug/datastructures/headers.py:330: DeprecationWarning: Passing bytes as a header value is deprecated and will not be supported in Werkzeug 3.0.
    _value = _str_header_value(_value)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
================================================================================== short test summary info ==================================================================================
SKIPPED [1] tests/integration/test_boto3.py:60: Encrypted Environment Variables from Travis Repository Settings are disabled on PRs from forks. https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
SKIPPED [1] tests/integration/test_boto3.py:77: Encrypted Environment Variables from Travis Repository Settings are disabled on PRs from forks. https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
XFAIL tests/integration/test_tornado.py::test_status_code - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_status_code will be ignored
XFAIL tests/integration/test_tornado.py::test_headers - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_headers will be ignored
XFAIL tests/integration/test_tornado.py::test_body - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_body will be ignored
XFAIL tests/integration/test_tornado.py::test_effective_url - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_effective_url will be ignored
XFAIL tests/integration/test_tornado.py::test_auth - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_auth will be ignored
XFAIL tests/integration/test_tornado.py::test_auth_failed - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_auth_failed will be ignored
XFAIL tests/integration/test_tornado.py::test_post - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_post will be ignored
XFAIL tests/integration/test_tornado.py::test_redirects - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_redirects will be ignored
XFAIL tests/integration/test_tornado.py::test_cross_scheme - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_cross_scheme will be ignored
XFAIL tests/integration/test_tornado.py::test_gzip - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_gzip will be ignored
XFAIL tests/integration/test_tornado.py::test_https_with_cert_validation_disabled - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_https_with_cert_validation_disabled will be ignored
XFAIL tests/integration/test_tornado.py::test_unsupported_features_raises_in_future - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_unsupported_features_raises_in_future will be ignored
XFAIL tests/integration/test_tornado.py::test_unsupported_features_raise_error_disabled - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_unsupported_features_raise_error_disabled will be ignored
XFAIL tests/integration/test_tornado.py::test_cannot_overwrite_cassette_raises_in_future - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_cannot_overwrite_cassette_raises_in_future will be ignored
XFAIL tests/integration/test_tornado.py::test_cannot_overwrite_cassette_raise_error_disabled - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_cannot_overwrite_cassette_raise_error_disabled will be ignored
XFAIL tests/integration/test_tornado.py::test_tornado_with_decorator_use_cassette - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_tornado_with_decorator_use_cassette will be ignored
XFAIL tests/integration/test_tornado.py::test_tornado_exception_can_be_caught - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_tornado_exception_can_be_caught will be ignored
XFAIL tests/integration/test_tornado.py::test_existing_references_get_patched - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_existing_references_get_patched will be ignored
XFAIL tests/integration/test_tornado.py::test_existing_instances_get_patched - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_existing_instances_get_patched will be ignored
XFAIL tests/integration/test_tornado.py::test_request_time_is_set - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_request_time_is_set will be ignored
ERROR tests/integration/test_aiohttp.py::test_cookies[http] - KeyError: 'REQUESTS_CA_BUNDLE'
ERROR tests/integration/test_aiohttp.py::test_cookies_redirect[http] - KeyError: 'REQUESTS_CA_BUNDLE'
ERROR tests/integration/test_aiohttp.py::test_cookies[https] - KeyError: 'REQUESTS_CA_BUNDLE'
ERROR tests/integration/test_aiohttp.py::test_cookies_redirect[https] - KeyError: 'REQUESTS_CA_BUNDLE'
FAILED tests/integration/test_urllib2.py::test_random_body[http] - urllib.error.HTTPError: HTTP Error 500: Internal Server Error
FAILED tests/integration/test_urllib2.py::test_multiple_requests[http] - urllib.error.HTTPError: HTTP Error 500: Internal Server Error
FAILED tests/integration/test_requests.py::test_status_code[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VER...
FAILED tests/integration/test_requests.py::test_headers[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VER...
FAILED tests/integration/test_requests.py::test_body[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: /bytes/1024 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTI...
FAILED tests/integration/test_requests.py::test_get_empty_content_type_json[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: /status/200 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTI...
FAILED tests/integration/test_requests.py::test_effective_url[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: /redirect-to?url=/html (Caused by SSLError(SSLCertVerificationError(1, '...
FAILED tests/integration/test_requests.py::test_auth[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: /basic-auth/user/passwd (Caused by SSLError(SSLCertVerificationError(1, ...
FAILED tests/integration/test_requests.py::test_auth_failed[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: /basic-auth/user/passwd (Caused by SSLError(SSLCertVerificationError(1, ...
FAILED tests/integration/test_requests.py::test_post[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: /post (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE...
FAILED tests/integration/test_requests.py::test_redirects[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: /redirect-to?url=bytes/1024 (Caused by SSLError(SSLCertVerificationError...
FAILED tests/integration/test_requests.py::test_gzip__decode_compressed_response_false[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: /gzip (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE...
FAILED tests/integration/test_requests.py::test_gzip__decode_compressed_response_true[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: /gzip (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE...
FAILED tests/integration/test_requests.py::test_session_created_before_use_cassette_is_patched[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: /bytes/1024 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTI...
FAILED tests/integration/test_requests.py::test_nested_cassettes_with_session_created_before_nesting[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: /bytes/1024 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTI...
FAILED tests/integration/test_requests.py::test_post_file[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: /post (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE...
FAILED tests/integration/test_requests.py::test_filter_post_params[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: /post (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE...
FAILED tests/integration/test_requests.py::test_post_unicode_match_on_body[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: /post (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE...
FAILED tests/integration/test_urllib2.py::test_random_body[https] - urllib.error.HTTPError: HTTP Error 500: Internal Server Error
FAILED tests/integration/test_urllib2.py::test_multiple_requests[https] - urllib.error.HTTPError: HTTP Error 500: Internal Server Error
FAILED tests/integration/test_boto.py::test_boto_without_vcr - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] Check your credentials
FAILED tests/integration/test_boto.py::test_boto_medium_difficulty - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] Check your credentials
FAILED tests/integration/test_boto.py::test_boto_hardcore_mode - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] Check your credentials
FAILED tests/integration/test_boto.py::test_boto_iam - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV4Handler'] Check your credentials
FAILED tests/integration/test_record_mode.py::test_new_episodes_record_mode_two_times - urllib.error.HTTPError: HTTP Error 500: Internal Server Error
FAILED tests/integration/test_requests.py::test_cross_scheme - requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=36847): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VER...
FAILED tests/unit/test_unittest.py::test_get_vcr_with_matcher - assert 0 == 1
FAILED tests/unit/test_unittest.py::test_testcase_playback - AttributeError: 'MyTest' object has no attribute 'response'
======================================================= 28 failed, 394 passed, 2 skipped, 20 xfailed, 43 warnings, 4 errors in 57.66s =======================================================

Full log is in attachment python-vcrpy-pytest.txt
Here is list of installed modules in build env

Package                       Version
----------------------------- ---------
aiohttp                       3.8.4
aiosignal                     1.3.1
alabaster                     0.7.13
anyio                         3.6.2
asttokens                     2.2.1
async-timeout                 4.0.2
attrs                         23.1.0
Babel                         2.12.1
backcall                      0.2.0
blinker                       1.6.2
boto                          2.49.0
boto3                         1.26.164
botocore                      1.29.164
Brotli                        1.0.9
build                         0.10.0
certifi                       2022.12.7
charset-normalizer            3.1.0
click                         8.1.3
decorator                     5.1.1
distro                        1.8.0
docutils                      0.19
exceptiongroup                1.1.1
executing                     1.2.0
Flask                         2.2.5
frozenlist                    1.3.3
gpg                           1.20.0
h11                           0.14.0
httpbin                       0.7.0
httpcore                      0.17.2
httplib2                      0.21.0
httpx                         0.24.1
idna                          3.4
imagesize                     1.4.1
importlib-metadata            6.7.0
iniconfig                     2.0.0
installer                     0.7.0
ipython                       8.12.0
itsdangerous                  2.1.2
jedi                          0.18.2
Jinja2                        3.1.2
jmespath                      1.0.1
libcomps                      0.1.19
MarkupSafe                    2.1.2
matplotlib-inline             0.1.6
multidict                     6.0.4
packaging                     23.1
parso                         0.8.3
pexpect                       4.8.0
pickleshare                   0.7.5
pluggy                        1.0.0
prompt-toolkit                3.0.38
ptyprocess                    0.7.0
pure-eval                     0.2.2
Pygments                      2.15.1
pyparsing                     3.1.0
pyproject_hooks               1.0.0
pytest                        7.4.0
pytest-aiohttp                1.0.4
pytest-asyncio                0.21.0
pytest-httpbin                2.0.0
pytest-mock                   3.11.1
python-dateutil               2.8.2
pytz                          2023.2
PyYAML                        6.0
raven                         6.10.0
requests                      2.31.0
s3transfer                    0.6.1
setuptools                    68.0.0
six                           1.16.0
sniffio                       1.3.0
snowballstemmer               2.2.0
Sphinx                        6.2.1
sphinxcontrib-applehelp       1.0.4
sphinxcontrib-devhelp         1.0.2
sphinxcontrib-htmlhelp        2.0.0
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.3
sphinxcontrib-serializinghtml 1.1.5
stack-data                    0.6.2
tomli                         2.0.1
tornado                       6.3.2
traitlets                     5.9.0
typing_extensions             4.7.1
urllib3                       1.26.15
wcwidth                       0.2.6
Werkzeug                      2.3.6
wheel                         0.40.0
wrapt                         1.14.1
yarl                          1.9.2
zipp                          3.15.0

Am I passing wrong path to ca bundle? (REQUESTS_CA_BUNDLE=/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem) 🤔

After change to REQUESTS_CA_BUNDLE=/etc/pki/tls/certs/ca-bundle.crt pytest fails the same way.

@kloczek that question has been answered by #645 (comment) already, I believe.

Only detail which I see in that reply is use Werkzeug==2.0.3 (please correct me if I'm.
I'm using 2.3.6.
Is this cause of the fails?
If yes: is it any plan to update to be able use latest version of the Werkzeug?

@kloczek you were asking for REQUESTS_CA_BUNDLE. The answer is:
REQUESTS_CA_BUNDLE=`python -m pytest_httpbin.certs`

@kloczek regarding Werkzeug please see the discussion above and https://github.com/gentoo/gentoo/blob/5ca1af4f70b22a042102c08858746e174376725a/dev-python/vcrpy/vcrpy-5.0.0.ebuild#L43-L49C3 .

@kloczek you were asking for REQUESTS_CA_BUNDLE. The answer is:
REQUESTS_CA_BUNDLE=`python -m pytest_httpbin.certs`

[tkloczko@pers-jacek SPECS]$ python3 -m pytest_httpbin.certs
/usr/lib/python3.8/site-packages/pytest_httpbin/certs/cacert.pem

Hmm I must patch that module to use cert file from /ets/pki.
After pass correct file

+ export REQUESTS_CA_BUNDLE=/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-vcrpy-5.0.0-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-vcrpy-5.0.0-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra -m 'not network'
============================= test session starts ==============================
platform linux -- Python 3.8.17, pytest-7.4.0, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0
configfile: pyproject.toml
plugins: anyio-3.6.2, asyncio-0.21.0, aiohttp-1.0.4, httpbin-2.0.0, mock-3.11.1
asyncio: mode=strict
collected 448 items

tests/integration/test_aiohttp.py ..................................EE   [  8%]
tests/integration/test_httplib2.py ........                              [  9%]
tests/integration/test_requests.py ................                      [ 13%]
tests/integration/test_urllib2.py .F.F....                               [ 15%]
tests/integration/test_urllib3.py .......                                [ 16%]
tests/integration/test_aiohttp.py EE                                     [ 17%]
tests/integration/test_httplib2.py ........                              [ 18%]
tests/integration/test_requests.py pytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
Fpytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
Fpytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
Fpytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
Fpytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
Fpytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
Fpytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
Fpytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
Fpytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
Fpytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
Fpytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
Fpytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
Fpytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
Fpytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
Fpytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
Fpytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
F                      [ 22%]
tests/integration/test_urllib2.py .F.F....                               [ 24%]
tests/integration/test_urllib3.py .......                                [ 25%]
tests/integration/test_aiohttp.py ..                                     [ 26%]
tests/integration/test_basic.py .....                                    [ 27%]
tests/integration/test_boto.py .FFFF                                     [ 28%]
tests/integration/test_boto3.py ss                                       [ 29%]
tests/integration/test_config.py ...........                             [ 31%]
tests/integration/test_disksaver.py ....                                 [ 32%]
tests/integration/test_filter.py ..........                              [ 34%]
tests/integration/test_httplib2.py ..                                    [ 35%]
tests/integration/test_httpx.py ........................................ [ 43%]
........                                                                 [ 45%]
tests/integration/test_ignore.py ....                                    [ 46%]
tests/integration/test_matchers.py ..............                        [ 49%]
tests/integration/test_multiple.py .                                     [ 50%]
tests/integration/test_proxy.py .                                        [ 50%]
tests/integration/test_record_mode.py ....F...                           [ 52%]
tests/integration/test_register_matcher.py ....                          [ 52%]
tests/integration/test_register_persister.py ...                         [ 53%]
tests/integration/test_register_serializer.py .                          [ 53%]
tests/integration/test_request.py ..                                     [ 54%]
tests/integration/test_requests.py ..pytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1131)
attempting to ignore so the rest of the tests can run
F...                                [ 55%]
tests/integration/test_stubs.py ....                                     [ 56%]
tests/integration/test_tornado.py xxxxxxxxxxxxxxxxxxxx                   [ 60%]
tests/integration/test_urllib2.py ..                                     [ 61%]
tests/integration/test_urllib3.py ....                                   [ 62%]
tests/integration/test_wild.py ......                                    [ 63%]
tests/unit/test_cassettes.py ...............................             [ 70%]
tests/unit/test_errors.py ....                                           [ 71%]
tests/unit/test_filters.py ........................                      [ 76%]
tests/unit/test_json_serializer.py .                                     [ 77%]
tests/unit/test_matchers.py .........................                    [ 82%]
tests/unit/test_migration.py ...                                         [ 83%]
tests/unit/test_persist.py ....                                          [ 84%]
tests/unit/test_request.py .................                             [ 87%]
tests/unit/test_response.py ....                                         [ 88%]
tests/unit/test_serialize.py ...............                             [ 92%]
tests/unit/test_stubs.py ..                                              [ 92%]
tests/unit/test_unittest.py .......FF                                    [ 94%]
tests/unit/test_vcr.py .......................                           [ 99%]
tests/unit/test_vcr_import.py .                                          [100%]

==================================== ERRORS ====================================

[...]

=============================== warnings summary ===============================
../../../../../usr/lib/python3.8/site-packages/boto/plugin.py:40
  /usr/lib/python3.8/site-packages/boto/plugin.py:40: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
    import imp

tests/integration/test_tornado.py:46
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:46: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:58
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:58: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:70
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:70: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:83
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:83: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:96
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:96: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:111
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:111: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:134
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:134: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:149
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:149: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:161
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:161: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:180
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:180: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:205
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:205: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:217
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:217: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:235
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:235: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:251
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:251: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:267
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:267: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:281
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:281: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:288
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:288: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:302
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:302: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:315
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:315: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:330
  /home/tkloczko/rpmbuild/BUILD/vcrpy-5.0.0/tests/integration/test_tornado.py:330: PytestUnknownMarkWarning: Unknown pytest.mark.gen_test - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.gen_test

tests/integration/test_tornado.py:46
  tests/integration/test_tornado.py:46: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_status_code will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:58
  tests/integration/test_tornado.py:58: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_headers will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:70
  tests/integration/test_tornado.py:70: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_body will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:83
  tests/integration/test_tornado.py:83: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_effective_url will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:96
  tests/integration/test_tornado.py:96: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_auth will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:111
  tests/integration/test_tornado.py:111: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_auth_failed will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:134
  tests/integration/test_tornado.py:134: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_post will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:149
  tests/integration/test_tornado.py:149: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_redirects will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:161
  tests/integration/test_tornado.py:161: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_cross_scheme will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:180
  tests/integration/test_tornado.py:180: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_gzip will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:205
  tests/integration/test_tornado.py:205: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_https_with_cert_validation_disabled will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:217
  tests/integration/test_tornado.py:217: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_unsupported_features_raises_in_future will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:234
  tests/integration/test_tornado.py:234: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_unsupported_features_raise_error_disabled will be ignored
    @pytest.mark.skipif(not supports_raise_error, reason="raise_error unavailable in tornado <= 3")

tests/integration/test_tornado.py:251
  tests/integration/test_tornado.py:251: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_cannot_overwrite_cassette_raises_in_future will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:266
  tests/integration/test_tornado.py:266: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_cannot_overwrite_cassette_raise_error_disabled will be ignored
    @pytest.mark.skipif(not supports_raise_error, reason="raise_error unavailable in tornado <= 3")

tests/integration/test_tornado.py:281
  tests/integration/test_tornado.py:281: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_tornado_with_decorator_use_cassette will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:288
  tests/integration/test_tornado.py:288: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_tornado_exception_can_be_caught will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:302
  tests/integration/test_tornado.py:302: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_existing_references_get_patched will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:315
  tests/integration/test_tornado.py:315: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_existing_instances_get_patched will be ignored
    @pytest.mark.gen_test

tests/integration/test_tornado.py:330
  tests/integration/test_tornado.py:330: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_request_time_is_set will be ignored
    @pytest.mark.gen_test

tests/integration/test_requests.py::test_effective_url[http]
tests/integration/test_requests.py::test_redirects[http]
  /usr/lib/python3.8/site-packages/werkzeug/datastructures/headers.py:330: DeprecationWarning: Passing bytes as a header value is deprecated and will not be supported in Werkzeug 3.0.
    _value = _str_header_value(_value)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
SKIPPED [1] tests/integration/test_boto3.py:60: Encrypted Environment Variables from Travis Repository Settings are disabled on PRs from forks. https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
SKIPPED [1] tests/integration/test_boto3.py:77: Encrypted Environment Variables from Travis Repository Settings are disabled on PRs from forks. https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
XFAIL tests/integration/test_tornado.py::test_status_code - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_status_code will be ignored
XFAIL tests/integration/test_tornado.py::test_headers - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_headers will be ignored
XFAIL tests/integration/test_tornado.py::test_body - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_body will be ignored
XFAIL tests/integration/test_tornado.py::test_effective_url - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_effective_url will be ignored
XFAIL tests/integration/test_tornado.py::test_auth - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_auth will be ignored
XFAIL tests/integration/test_tornado.py::test_auth_failed - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_auth_failed will be ignored
XFAIL tests/integration/test_tornado.py::test_post - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_post will be ignored
XFAIL tests/integration/test_tornado.py::test_redirects - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_redirects will be ignored
XFAIL tests/integration/test_tornado.py::test_cross_scheme - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_cross_scheme will be ignored
XFAIL tests/integration/test_tornado.py::test_gzip - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_gzip will be ignored
XFAIL tests/integration/test_tornado.py::test_https_with_cert_validation_disabled - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_https_with_cert_validation_disabled will be ignored
XFAIL tests/integration/test_tornado.py::test_unsupported_features_raises_in_future - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_unsupported_features_raises_in_future will be ignored
XFAIL tests/integration/test_tornado.py::test_unsupported_features_raise_error_disabled - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_unsupported_features_raise_error_disabled will be ignored
XFAIL tests/integration/test_tornado.py::test_cannot_overwrite_cassette_raises_in_future - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_cannot_overwrite_cassette_raises_in_future will be ignored
XFAIL tests/integration/test_tornado.py::test_cannot_overwrite_cassette_raise_error_disabled - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_cannot_overwrite_cassette_raise_error_disabled will be ignored
XFAIL tests/integration/test_tornado.py::test_tornado_with_decorator_use_cassette - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_tornado_with_decorator_use_cassette will be ignored
XFAIL tests/integration/test_tornado.py::test_tornado_exception_can_be_caught - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_tornado_exception_can_be_caught will be ignored
XFAIL tests/integration/test_tornado.py::test_existing_references_get_patched - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_existing_references_get_patched will be ignored
XFAIL tests/integration/test_tornado.py::test_existing_instances_get_patched - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_existing_instances_get_patched will be ignored
XFAIL tests/integration/test_tornado.py::test_request_time_is_set - reason: [NOTRUN] yield tests were removed in pytest 4.0 - test_request_time_is_set will be ignored
ERROR tests/integration/test_aiohttp.py::test_cookies[http] - ssl.SSLError: [...
ERROR tests/integration/test_aiohttp.py::test_cookies_redirect[http] - ssl.SS...
ERROR tests/integration/test_aiohttp.py::test_cookies[https] - ssl.SSLError: ...
ERROR tests/integration/test_aiohttp.py::test_cookies_redirect[https] - ssl.S...
FAILED tests/integration/test_urllib2.py::test_random_body[http] - urllib.err...
FAILED tests/integration/test_urllib2.py::test_multiple_requests[http] - urll...
FAILED tests/integration/test_requests.py::test_status_code[https] - requests...
FAILED tests/integration/test_requests.py::test_headers[https] - requests.exc...
FAILED tests/integration/test_requests.py::test_body[https] - requests.except...
FAILED tests/integration/test_requests.py::test_get_empty_content_type_json[https]
FAILED tests/integration/test_requests.py::test_effective_url[https] - reques...
FAILED tests/integration/test_requests.py::test_auth[https] - requests.except...
FAILED tests/integration/test_requests.py::test_auth_failed[https] - requests...
FAILED tests/integration/test_requests.py::test_post[https] - requests.except...
FAILED tests/integration/test_requests.py::test_redirects[https] - requests.e...
FAILED tests/integration/test_requests.py::test_gzip__decode_compressed_response_false[https]
FAILED tests/integration/test_requests.py::test_gzip__decode_compressed_response_true[https]
FAILED tests/integration/test_requests.py::test_session_created_before_use_cassette_is_patched[https]
FAILED tests/integration/test_requests.py::test_nested_cassettes_with_session_created_before_nesting[https]
FAILED tests/integration/test_requests.py::test_post_file[https] - requests.e...
FAILED tests/integration/test_requests.py::test_filter_post_params[https] - r...
FAILED tests/integration/test_requests.py::test_post_unicode_match_on_body[https]
FAILED tests/integration/test_urllib2.py::test_random_body[https] - urllib.er...
FAILED tests/integration/test_urllib2.py::test_multiple_requests[https] - url...
FAILED tests/integration/test_boto.py::test_boto_without_vcr - boto.exception...
FAILED tests/integration/test_boto.py::test_boto_medium_difficulty - boto.exc...
FAILED tests/integration/test_boto.py::test_boto_hardcore_mode - boto.excepti...
FAILED tests/integration/test_boto.py::test_boto_iam - boto.exception.NoAuthH...
FAILED tests/integration/test_record_mode.py::test_new_episodes_record_mode_two_times
FAILED tests/integration/test_requests.py::test_cross_scheme - requests.excep...
FAILED tests/unit/test_unittest.py::test_get_vcr_with_matcher - assert 0 == 1
FAILED tests/unit/test_unittest.py::test_testcase_playback - AttributeError: ...
= 28 failed, 394 passed, 2 skipped, 20 xfailed, 43 warnings, 4 errors in 188.28s (0:03:08) =

Hmm I must patch that module to use cert file from /ets/pki.

@kloczek why do you feel there is need for that? I would expected that the httpbin package would be the place to patch then if these certificates would be a problem (I doubt they are), not VCR.py — am I missing something?

After pass correct file

Part of these errors is cut off and some of the errors seems related to use of the wrong certificates. The instructions at https://github.com/kevin1024/vcrpy/issues/645#issuecomment-1561933604 could hardly be more detailed about how to get the tests to pass. The instructions still work for 5.0.0 for me, I just tried:
cd "$(mktemp -d)"
wget https://github.com/kevin1024/vcrpy/archive/refs/tags/v5.0.0.tar.gz
tar xf v5.0.0.tar.gz
cd vcrpy-5.0.0/
python3.10 -m venv venv
source venv/bin/activate
pip install -e .
pip install pytest aiohttp boto3 httpx requests pytest-httpbin tornado httplib2 pytest-aiohttp 'urllib3<2' Werkzeug==2.0.3  # NOTE LAST TWO!
REQUESTS_CA_BUNDLE=`python -m pytest_httpbin.certs` pytest -ra  # NOTE REQUESTS_CA_BUNDLE!

For anything that works in this context but not in your packaging context, please track down the difference and cause on your side and create new issues with clear details as I would do for the packages I maintain in Gentoo, so that we can move forward, keep this ticket on topic about werkzeug. Thank you.

@kloczek why do you feel there is need for that? I would expected that the httpbin package would be the place to patch then if these certificates would be a problem (I doubt they are), not VCR.py — am I missing something?

No one knows why long current version of exact piece of software with own copy of ca-bundle will be used.
If exact software is using system wide PKI keys/certs it iw possible to maintain that for ALL software.
I'm not going to submit httpbin module patch because exact location could be OS distribution dependent it is matter of those who are maintaining OS distros to sync that location across all packages in distribution.
I can only say "thank you" that accidentally I found something which is inconsistent in some resources according to some distro goals. 🙇♂
To be honest I've been thinking from some time to open python RFE to provide for example sys.cert which could solve  all that kind dilemmas in single point in python ecosystem with CA path (I think that will try to do that today).

For anything that works in this context but not in your packaging context, please track down the difference and cause on your side and create new issues with clear details as I would do for the packages I maintain in Gentoo, so that we can move forward, keep this ticket on topic about werkzeug. Thank you.

I'm aware that I'm usually using way freshen versions of some modules.
All what I'm doing it is reporting that on use those version it is possible to see some error/fails.
In other words If someone is thinking that I'm not asking to fix those issue instantly.
God .. NO!!!
I'm only flagging some issues in exact env .. only this and nothing more.
Because this ticket still is opened I'm assuming that at least some of those issues are real but maybe time is not the best to address them now.
As long as in python packages on which I'm working there is obligatory enabled test suite execution  + some set of external python test units with high probability I can assume all/most of those errors/fails are related to vcrpy test suites and not tested vcrpy code.
[tkloczko@pers-jacek SPECS]$ ls python-*spec | wc -l; grep ^%pytest python-*spec | wc -l
1163
1146

From that point of view this conversation allows me to assign importance of this ticket in relation to whole distribution as non-critical as well because I'm not able to point any other known me issues with vcrpy module when it is used with other modules build/install/test procedures.
And one more time: Thank you very much for provide me some really crucial details which allowed me to improve not only vcrpy module package build/install/testing procedure but as well expose some other issues in other modules 👍
Because I'm working +2.5 years on all those python modules I've learned al lot about that area however because I'm maliny specialist about packaging stuff I'm still opened on any suggestions how can I improve way of reporting python modules issues found during my work.
Sorry for a long comment but I really want to be only well understood ..

I have pushed a new version of the httpbin package that has compatibility with updated versions of werkzeug. We needed to fork the httpbin package due to lack of response from the repo owner.
Does that help with this issue?

@kevin1024 interesting, thanks! I guess it's a start. Can you point me to the Git repository backing the new 0.10.0 release? I think we should at least update the PyPI link "Homepage" at https://pypi.org/project/httpbin/ to point to the new repository.

Good call!  It’s here: https://github.com/psf/httpbin

@kevin1024 thanks!
I think there is a small mixup in reated commit https://github.com/psf/httpbin/commit/e7d491f907a9cd39031904371f112c7cc1853791: The message says "Update github URL to point to the fork" but the new URL does not point to the Git repository but the PyPI page (where the user is already located). Is there a chance that you could update it once more for https://github.com/psf/httpbin ?

I just moved to python 3.9 and pytest 8.1.1 and now I have different set of failing units

Here is pytest output:
+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib/python3.9/site-packages
+ /usr/bin/pytest -ra -m 'not network' --ignore tests/test_fio_bounds.py
==================================================================================== test session starts ====================================================================================
platform linux -- Python 3.9.18, pytest-8.1.1, pluggy-1.4.0
GDAL: 3.8.4 (3080400)
Supported drivers: CSV, DGN, DXF, ESRI Shapefile, ESRIJSON, FlatGeobuf, GML, GPKG, GeoJSON, GeoJSONSeq, Idrisi, MapInfo File, OGR_GMT, OGR_PDS, OpenFileGDB, PCIDSK, S57, SQLite, TopoJSON
rootdir: /home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6
configfile: pytest.ini
testpaths: tests
plugins: forked-1.6.0, localserver-0.8.1, flaky-3.8.1
collected 1836 items / 5 deselected / 1831 selected

tests/test__env.py ...............                                                                                [  0%]
tests/test_bigint.py ...                                                                                [  0%]
tests/test_binary_field.py .                                                                                [  1%]
tests/test_bounds.py .....s........s..                                                                                [  1%]
tests/test_bytescollection.py ......................................s                                                                                [  4%]
tests/test_collection.py ............................................................................................................                                                 [  9%]
tests/test_collection_crs.py ......                                                                                [ 10%]
tests/test_collection_legacy.py ..................................                                                                                [ 12%]
tests/test_compound_crs.py .                                                                                [ 12%]
tests/test_crs.py .................                                                                                [ 13%]
tests/test_cursor_interruptions.py ....................                                                                                [ 14%]
tests/test_curve_geometries.py ..                                                                                [ 14%]
tests/test_data_paths.py FFFF...                                                                                [ 14%]
tests/test_datetime.py ...sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.                                                              [ 20%]
tests/test_driver_options.py .                                                                                [ 20%]
tests/test_drivers.py .                                                                                [ 20%]
tests/test_drvsupport.py sssssssssssssssssssssssssssssssssssssssssssssssss..                                                                                [ 22%]
tests/test_encoding.py ...                                                                                [ 23%]
tests/test_env.py ..........                                                                                [ 23%]
tests/test_feature.py .........                                                                                [ 24%]
tests/test_fio_calc.py .FFF                                                                                [ 24%]
tests/test_fio_cat.py FFFFFFFFFF.F.FF                                                                                [ 25%]
tests/test_fio_collect.py FFFFFFFF                                                                                [ 25%]
tests/test_fio_distrib.py FF                                                                                [ 25%]
tests/test_fio_dump.py FFFFFF                                                                                [ 26%]
tests/test_fio_filter.py .F                                                                                [ 26%]
tests/test_fio_info.py ....FF.                                                                                [ 26%]
tests/test_fio_load.py ................                                                                                [ 27%]
tests/test_fio_ls.py ....                                                                                [ 27%]
tests/test_fio_rm.py ...                                                                                [ 27%]
tests/test_geojson.py ......                                                                                [ 28%]
tests/test_geometry.py ................                                                                                [ 29%]
tests/test_geopackage.py ...                                                                                [ 29%]
tests/test_http_session.py ....................................                                                                                [ 31%]
tests/test_integration.py .                                                                                [ 31%]
tests/test_layer.py .........................................................................................................                                                         [ 36%]
tests/test_listing.py ..................                                                                                [ 37%]
tests/test_logutils.py ....                                                                                [ 38%]
tests/test_memoryfile.py ...........................................s........                                                                                [ 40%]
tests/test_meta.py ...................................................................................................................                                                [ 47%]
tests/test_model.py ...................................                                                                                [ 49%]
tests/test_multiconxn.py ........                                                                                [ 49%]
tests/test_non_counting_layer.py FFFFFF                                                                                [ 49%]
tests/test_open.py ...                                                                                [ 50%]
tests/test_profile.py ..                                                                                [ 50%]
tests/test_props.py ......                                                                                [ 50%]
tests/test_read_drivers.py ..                                                                                [ 50%]
tests/test_remove.py ............                                                                                [ 51%]
tests/test_revolvingdoor.py .                                                                                [ 51%]
tests/test_rfc3339.py ..............                                                                                [ 52%]
tests/test_rfc64_tin.py ..                                                                                [ 52%]
tests/test_schema.py ........................................................sss........F.                                                                                [ 55%]
tests/test_schema_geom.py ...........                                                                                [ 56%]
tests/test_session.py .............s                                                                                [ 57%]
tests/test_slice.py ................................................................................................................................................................. [ 66%]
..................................................................................................................................................................................... [ 76%]
..................................................................................................................                                                                    [ 82%]
tests/test_subtypes.py ..                                                                                [ 82%]
tests/test_topojson.py .                                                                                [ 82%]
tests/test_transactions.py .                                                                                [ 82%]
tests/test_transform.py ..........................                                                                                [ 83%]
tests/test_unicode.py .....x.                                                                                [ 84%]
tests/test_version.py ..s                                                                                [ 84%]
tests/test_vfs.py ..................................................................................X......................................................X......................... [ 93%]
......X..................................X..................................X.................X.......................                                                                [ 99%]
tests/test_write.py ....                                                                                [100%]

========================================================================================= FAILURES ==========================================================================================
___________________________________________________________________________________ test_gdal_data_wheel ____________________________________________________________________________________

    @pytest.mark.wheel
    def test_gdal_data_wheel():
        """Get GDAL data path from a wheel"""
>       assert GDALDataFinder().search() == os.path.join(os.path.dirname(fiona.__file__), 'gdal_data')
E       AssertionError

tests/test_data_paths.py:16: AssertionError
___________________________________________________________________________________ test_proj_data_wheel ____________________________________________________________________________________

    @pytest.mark.wheel
    def test_proj_data_wheel():
        """Get GDAL data path from a wheel"""
>       assert PROJDataFinder().search() == os.path.join(os.path.dirname(fiona.__file__), 'proj_data')
E       AssertionError

tests/test_data_paths.py:22: AssertionError
_________________________________________________________________________________ test_env_gdal_data_wheel __________________________________________________________________________________

    @pytest.mark.wheel
    def test_env_gdal_data_wheel():
        runner = CliRunner()
        result = runner.invoke(main_group, ['env', '--gdal-data'])
        assert result.exit_code == 0
>       assert result.output.strip() == os.path.join(os.path.dirname(fiona.__file__), 'gdal_data')
E       AssertionError

tests/test_data_paths.py:30: AssertionError
_________________________________________________________________________________ test_env_proj_data_wheel __________________________________________________________________________________

    @pytest.mark.wheel
    def test_env_proj_data_wheel():
        runner = CliRunner()
        result = runner.invoke(main_group, ['env', '--proj-data'])
        assert result.exit_code == 0
>       assert result.output.strip() == os.path.join(os.path.dirname(fiona.__file__), 'proj_data')
E       AssertionError

tests/test_data_paths.py:38: AssertionError
_______________________________________________________________________________________ test_calc_seq _______________________________________________________________________________________

feature_seq = '{"geometry": {"type": "Polygon", "coordinates": [[[-111.73527526855469, 41.995094299316406], [-111.65931701660156, 41...ame=Wellsville%20Mountain", "AGBUR": "FS", "AREA": 0.0104441, "STATE_FIPS": "49", "WILDRNP020": 336, "STATE": "UT"}}\n'
runner = <click.testing.CliRunner object at 0x7f12a84587c0>

    def test_calc_seq(feature_seq, runner):
        result = runner.invoke(main_group, ['calc',
            "TEST",
            "f.properties.AREA / f.properties.PERIMETER"],
            feature_seq)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_calc.py:36: AssertionError
_______________________________________________________________________________________ test_bool_seq _______________________________________________________________________________________

feature_seq = '{"geometry": {"type": "Polygon", "coordinates": [[[-111.73527526855469, 41.995094299316406], [-111.65931701660156, 41...ame=Wellsville%20Mountain", "AGBUR": "FS", "AREA": 0.0104441, "STATE_FIPS": "49", "WILDRNP020": 336, "STATE": "UT"}}\n'
runner = <click.testing.CliRunner object at 0x7f12a84587c0>

    def test_bool_seq(feature_seq, runner):
        result = runner.invoke(main_group, ['calc', "TEST", "f.properties.AREA > 0.015"],
                               feature_seq)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_calc.py:48: AssertionError
__________________________________________________________________________________ test_existing_property ___________________________________________________________________________________

feature_seq = '{"geometry": {"type": "Polygon", "coordinates": [[[-111.73527526855469, 41.995094299316406], [-111.65931701660156, 41...ame=Wellsville%20Mountain", "AGBUR": "FS", "AREA": 0.0104441, "STATE_FIPS": "49", "WILDRNP020": 336, "STATE": "UT"}}\n'
runner = <click.testing.CliRunner object at 0x7f12a84587c0>

    def test_existing_property(feature_seq, runner):
        result = runner.invoke(
            main_group, ["calc", "AREA", "f.properties.AREA * 2"], feature_seq
        )
>       assert result.exit_code == 2
E       AssertionError

tests/test_fio_calc.py:59: AssertionError
_________________________________________________________________________________________ test_one __________________________________________________________________________________________

path_coutwildrnp_shp = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/coutwildrnp.shp'

    def test_one(path_coutwildrnp_shp):
        runner = CliRunner()
        result = runner.invoke(main_group, ['cat', path_coutwildrnp_shp])
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_cat.py:12: AssertionError
_________________________________________________________________________________________ test_two __________________________________________________________________________________________

path_coutwildrnp_shp = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/coutwildrnp.shp'

    def test_two(path_coutwildrnp_shp):
        runner = CliRunner()
        result = runner.invoke(main_group, ['cat', path_coutwildrnp_shp, path_coutwildrnp_shp])
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_cat.py:19: AssertionError
_______________________________________________________________________________________ test_bbox_no ________________________________________________________________________________________

path_coutwildrnp_shp = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/coutwildrnp.shp'

    def test_bbox_no(path_coutwildrnp_shp):
        runner = CliRunner()
        result = runner.invoke(
            main_group,
            ['cat', path_coutwildrnp_shp, '--bbox', '0,10,80,20'],
            catch_exceptions=False)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_cat.py:29: AssertionError
_______________________________________________________________________________________ test_bbox_yes _______________________________________________________________________________________

path_coutwildrnp_shp = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/coutwildrnp.shp'

    def test_bbox_yes(path_coutwildrnp_shp):
        runner = CliRunner()
        result = runner.invoke(
            main_group,
            ['cat', path_coutwildrnp_shp, '--bbox', '-109,37,-107,39'],
            catch_exceptions=False)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_cat.py:39: AssertionError
__________________________________________________________________________________ test_bbox_yes_two_files __________________________________________________________________________________

path_coutwildrnp_shp = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/coutwildrnp.shp'

    def test_bbox_yes_two_files(path_coutwildrnp_shp):
        runner = CliRunner()
        result = runner.invoke(
            main_group,
            ['cat', path_coutwildrnp_shp, path_coutwildrnp_shp, '--bbox', '-109,37,-107,39'],
            catch_exceptions=False)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_cat.py:49: AssertionError
____________________________________________________________________________________ test_bbox_json_yes _____________________________________________________________________________________

path_coutwildrnp_shp = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/coutwildrnp.shp'

    def test_bbox_json_yes(path_coutwildrnp_shp):
        runner = CliRunner()
        result = runner.invoke(
            main_group,
            ['cat', path_coutwildrnp_shp, '--bbox', '[-109,37,-107,39]'],
            catch_exceptions=False)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_cat.py:59: AssertionError
______________________________________________________________________________________ test_bbox_where ______________________________________________________________________________________

path_coutwildrnp_shp = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/coutwildrnp.shp'

    def test_bbox_where(path_coutwildrnp_shp):
        runner = CliRunner()
        result = runner.invoke(
            main_group,
            ['cat', path_coutwildrnp_shp, '--bbox', '-120,40,-100,50',
             '--where', "NAME LIKE 'Mount%'"],
            catch_exceptions=False)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_cat.py:70: AssertionError
_______________________________________________________________________________________ test_where_no _______________________________________________________________________________________

path_coutwildrnp_shp = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/coutwildrnp.shp'

    def test_where_no(path_coutwildrnp_shp):
        runner = CliRunner()
        result = runner.invoke(
            main_group,
            ['cat', path_coutwildrnp_shp, '--where', "STATE LIKE '%foo%'"],
            catch_exceptions=False)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_cat.py:80: AssertionError
______________________________________________________________________________________ test_where_yes _______________________________________________________________________________________

path_coutwildrnp_shp = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/coutwildrnp.shp'

    def test_where_yes(path_coutwildrnp_shp):
        runner = CliRunner()
        result = runner.invoke(
            main_group,
            ['cat', path_coutwildrnp_shp, '--where', "NAME LIKE 'Mount%'"],
            catch_exceptions=False)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_cat.py:90: AssertionError
_________________________________________________________________________________ test_where_yes_two_files __________________________________________________________________________________

path_coutwildrnp_shp = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/coutwildrnp.shp'

    def test_where_yes_two_files(path_coutwildrnp_shp):
        runner = CliRunner()
        result = runner.invoke(
            main_group,
            ['cat', path_coutwildrnp_shp, path_coutwildrnp_shp,
             '--where', "NAME LIKE 'Mount%'"],
            catch_exceptions=False)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_cat.py:101: AssertionError
_____________________________________________________________________________________ test_multi_layer ______________________________________________________________________________________

data_dir = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data'

    def test_multi_layer(data_dir):
        layerdef = "1:coutwildrnp,1:coutwildrnp"
        runner = CliRunner()
        result = runner.invoke(
            main_group, ['cat', '--layer', layerdef, data_dir])
>       assert result.output.count('"Feature"') == 134
E       AssertionError

tests/test_fio_cat.py:117: AssertionError
_________________________________________________________________________________________ test_vfs __________________________________________________________________________________________

path_coutwildrnp_zip = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/coutwildrnp.zip'

    def test_vfs(path_coutwildrnp_zip):
        runner = CliRunner()
        result = runner.invoke(main_group, [
            'cat', f'zip://{path_coutwildrnp_zip}'])
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_cat.py:131: AssertionError
___________________________________________________________________________________ test_dst_crs_epsg3857 ___________________________________________________________________________________

path_coutwildrnp_shp = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/coutwildrnp.shp'

    def test_dst_crs_epsg3857(path_coutwildrnp_shp):
        """Confirm fix of issue #952"""
        runner = CliRunner()
        result = runner.invoke(
            main_group, ["cat", "--dst-crs", "EPSG:3857", path_coutwildrnp_shp]
        )
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_cat.py:141: AssertionError
______________________________________________________________________________________ test_collect_rs ______________________________________________________________________________________

feature_seq_pp_rs = '\x1e{\n  "geometry": {\n    "type": "Polygon", \n    "coordinates": [\n      [\n        [\n          -111.73527526855...GBUR": "FS", \n    "AREA": 0.0104441, \n    "STATE_FIPS": "49", \n    "WILDRNP020": 336, \n    "STATE": "UT"\n  }\n}\n'

    def test_collect_rs(feature_seq_pp_rs):
        runner = CliRunner()
        result = runner.invoke(
            main_group, ['collect', '--src-crs', 'EPSG:3857'],
            feature_seq_pp_rs,
            catch_exceptions=False)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_collect.py:20: AssertionError
____________________________________________________________________________________ test_collect_no_rs _____________________________________________________________________________________

feature_seq = '{"geometry": {"type": "Polygon", "coordinates": [[[-111.73527526855469, 41.995094299316406], [-111.65931701660156, 41...ame=Wellsville%20Mountain", "AGBUR": "FS", "AREA": 0.0104441, "STATE_FIPS": "49", "WILDRNP020": 336, "STATE": "UT"}}\n'

    def test_collect_no_rs(feature_seq):
        runner = CliRunner()
        result = runner.invoke(
            main_group, ['collect', '--src-crs', 'EPSG:3857'],
            feature_seq,
            catch_exceptions=False)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_collect.py:30: AssertionError
______________________________________________________________________________________ test_collect_ld ______________________________________________________________________________________

feature_seq = '{"geometry": {"type": "Polygon", "coordinates": [[[-111.73527526855469, 41.995094299316406], [-111.65931701660156, 41...ame=Wellsville%20Mountain", "AGBUR": "FS", "AREA": 0.0104441, "STATE_FIPS": "49", "WILDRNP020": 336, "STATE": "UT"}}\n'

    def test_collect_ld(feature_seq):
        runner = CliRunner()
        result = runner.invoke(
            main_group, ['collect', '--with-ld-context', '--add-ld-context-item', 'foo=bar'],
            feature_seq,
            catch_exceptions=False)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_collect.py:40: AssertionError
_________________________________________________________________________________ test_collect_rec_buffered _________________________________________________________________________________

feature_seq = '{"geometry": {"type": "Polygon", "coordinates": [[[-111.73527526855469, 41.995094299316406], [-111.65931701660156, 41...ame=Wellsville%20Mountain", "AGBUR": "FS", "AREA": 0.0104441, "STATE_FIPS": "49", "WILDRNP020": 336, "STATE": "UT"}}\n'

    def test_collect_rec_buffered(feature_seq):
        runner = CliRunner()
        result = runner.invoke(main_group, ['collect', '--record-buffered'], feature_seq)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_collect.py:48: AssertionError
___________________________________________________________________________________ test_collect_noparse ____________________________________________________________________________________

feature_seq = '{"geometry": {"type": "Polygon", "coordinates": [[[-111.73527526855469, 41.995094299316406], [-111.65931701660156, 41...ame=Wellsville%20Mountain", "AGBUR": "FS", "AREA": 0.0104441, "STATE_FIPS": "49", "WILDRNP020": 336, "STATE": "UT"}}\n'

    def test_collect_noparse(feature_seq):
        runner = CliRunner()
        result = runner.invoke(
            main_group, ['collect', '--no-parse'],
            feature_seq,
            catch_exceptions=False)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_collect.py:58: AssertionError
_______________________________________________________________________________ test_collect_noparse_records ________________________________________________________________________________

feature_seq = '{"geometry": {"type": "Polygon", "coordinates": [[[-111.73527526855469, 41.995094299316406], [-111.65931701660156, 41...ame=Wellsville%20Mountain", "AGBUR": "FS", "AREA": 0.0104441, "STATE_FIPS": "49", "WILDRNP020": 336, "STATE": "UT"}}\n'

    def test_collect_noparse_records(feature_seq):
        runner = CliRunner()
        result = runner.invoke(
            main_group, ['collect', '--no-parse', '--record-buffered'],
            feature_seq,
            catch_exceptions=False)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_collect.py:69: AssertionError
___________________________________________________________________________________ test_collect_src_crs ____________________________________________________________________________________

feature_seq = '{"geometry": {"type": "Polygon", "coordinates": [[[-111.73527526855469, 41.995094299316406], [-111.65931701660156, 41...ame=Wellsville%20Mountain", "AGBUR": "FS", "AREA": 0.0104441, "STATE_FIPS": "49", "WILDRNP020": 336, "STATE": "UT"}}\n'

    def test_collect_src_crs(feature_seq):
        runner = CliRunner()
        result = runner.invoke(
            main_group, ['collect', '--no-parse', '--src-crs', 'epsg:4326'],
            feature_seq,
            catch_exceptions=False)
>       assert result.exit_code == 2
E       AssertionError

tests/test_fio_collect.py:80: AssertionError
__________________________________________________________________________________ test_collect_noparse_rs __________________________________________________________________________________

feature_seq_pp_rs = '\x1e{\n  "geometry": {\n    "type": "Polygon", \n    "coordinates": [\n      [\n        [\n          -111.73527526855...GBUR": "FS", \n    "AREA": 0.0104441, \n    "STATE_FIPS": "49", \n    "WILDRNP020": 336, \n    "STATE": "UT"\n  }\n}\n'

    def test_collect_noparse_rs(feature_seq_pp_rs):
        runner = CliRunner()
        result = runner.invoke(
            main_group, ['collect', '--no-parse'],
            feature_seq_pp_rs,
            catch_exceptions=False)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_collect.py:89: AssertionError
_______________________________________________________________________________________ test_distrib ________________________________________________________________________________________

feature_collection_pp = '\x1e{\n  "type": "FeatureCollection",\n  "features": [\n    {\n      "geometry": {\n        "type": "Polygon",\n     ...: 0.0104441,\n        "STATE_FIPS": "49",\n        "WILDRNP020": 336,\n        "STATE": "UT"\n      }\n    }\n  ]\n}\n'

    def test_distrib(feature_collection_pp):
        runner = CliRunner()
        result = runner.invoke(main_group, ['distrib', ], feature_collection_pp)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_distrib.py:12: AssertionError
____________________________________________________________________________________ test_distrib_no_rs _____________________________________________________________________________________

feature_collection = '{"type": "FeatureCollection", "features": [{"geometry": {"type": "Polygon", "coordinates": [[[-111.73527526855469, 41...ame=Wellsville%20Mountain", "AGBUR": "FS", "AREA": 0.0104441, "STATE_FIPS": "49", "WILDRNP020": 336, "STATE": "UT"}}]}'

    def test_distrib_no_rs(feature_collection):
        runner = CliRunner()
        result = runner.invoke(main_group, ['distrib', ], feature_collection)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_distrib.py:19: AssertionError
_________________________________________________________________________________________ test_dump _________________________________________________________________________________________

path_coutwildrnp_shp = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/coutwildrnp.shp'

    def test_dump(path_coutwildrnp_shp):
        runner = CliRunner()
        result = runner.invoke(main_group, ['dump', path_coutwildrnp_shp])
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_dump.py:16: AssertionError
__________________________________________________________________________________ test_dump_layer[routes] __________________________________________________________________________________

path_gpx = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx', layer = 'routes'

    @pytest.mark.parametrize("layer", ["routes", "1", "tracks", "track_points"])
    def test_dump_layer(path_gpx, layer):
        runner = CliRunner()
        result = runner.invoke(main_group, ["dump", path_gpx, "--layer", layer])
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_dump.py:24: AssertionError
____________________________________________________________________________________ test_dump_layer[1] _____________________________________________________________________________________

path_gpx = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx', layer = '1'

    @pytest.mark.parametrize("layer", ["routes", "1", "tracks", "track_points"])
    def test_dump_layer(path_gpx, layer):
        runner = CliRunner()
        result = runner.invoke(main_group, ["dump", path_gpx, "--layer", layer])
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_dump.py:24: AssertionError
__________________________________________________________________________________ test_dump_layer[tracks] __________________________________________________________________________________

path_gpx = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx', layer = 'tracks'

    @pytest.mark.parametrize("layer", ["routes", "1", "tracks", "track_points"])
    def test_dump_layer(path_gpx, layer):
        runner = CliRunner()
        result = runner.invoke(main_group, ["dump", path_gpx, "--layer", layer])
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_dump.py:24: AssertionError
_______________________________________________________________________________ test_dump_layer[track_points] _______________________________________________________________________________

path_gpx = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx', layer = 'track_points'

    @pytest.mark.parametrize("layer", ["routes", "1", "tracks", "track_points"])
    def test_dump_layer(path_gpx, layer):
        runner = CliRunner()
        result = runner.invoke(main_group, ["dump", path_gpx, "--layer", layer])
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_dump.py:24: AssertionError
____________________________________________________________________________________ test_dump_layer_vfs ____________________________________________________________________________________

path_coutwildrnp_zip = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/coutwildrnp.zip'

    def test_dump_layer_vfs(path_coutwildrnp_zip):
        path = f"zip://{path_coutwildrnp_zip}"
        result = CliRunner().invoke(main_group, ["dump", path])
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_dump.py:31: AssertionError
_________________________________________________________________________________________ test_seq __________________________________________________________________________________________

feature_seq = '{"geometry": {"type": "Polygon", "coordinates": [[[-111.73527526855469, 41.995094299316406], [-111.65931701660156, 41...ame=Wellsville%20Mountain", "AGBUR": "FS", "AREA": 0.0104441, "STATE_FIPS": "49", "WILDRNP020": 336, "STATE": "UT"}}\n'
runner = <click.testing.CliRunner object at 0x7f12a84587c0>

    def test_seq(feature_seq, runner):

        result = runner.invoke(main_group, ['filter',
            "f.properties.AREA > 0.01"], feature_seq, catch_exceptions=False)
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_filter.py:17: AssertionError
____________________________________________________________________________________ test_info_no_count _____________________________________________________________________________________

path_gpx = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx'

    def test_info_no_count(path_gpx):
        """Make sure we can still get a `$ fio info` report on datasources that do
        not support feature counting, AKA `len(collection)`.
        """
        runner = CliRunner()
        result = runner.invoke(main_group, ['info', path_gpx])
>       assert result.exit_code == 0
E       AssertionError

tests/test_fio_info.py:65: AssertionError
------------------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------------------
DEBUG    fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
ERROR    fiona._env:collection.py:243 `/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
DEBUG    fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
______________________________________________________________________________________ test_info_layer ______________________________________________________________________________________

path_gpx = '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx'

    def test_info_layer(path_gpx):
        for layer in ('routes', '1'):
            runner = CliRunner()
            result = runner.invoke(main_group, [
                'info',
                path_gpx,
                '--layer', layer])
>           assert result.exit_code == 0
E           AssertionError

tests/test_fio_info.py:78: AssertionError
------------------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------------------
DEBUG    fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
ERROR    fiona._env:collection.py:243 `/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
DEBUG    fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.

DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
ERROR    fiona._env:collection.py:243 `/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.

DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
ERROR    fiona._env:collection.py:243 `/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.

DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
ERROR    fiona._env:collection.py:243 `/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.

DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
ERROR    fiona._env:collection.py:243 `/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.

DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
ERROR    fiona._env:collection.py:243 `/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.

DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
 In ``mode`` 'r', data can
        be read only. In ``mode`` 'a', data can be appended to a file.
        In ``mode`` 'w', data overwrites the existing contents of
        a file.

        In ``mode`` 'w', an OGR ``driver`` name and a ``schema`` are
        required. A Proj4 ``crs`` string is recommended. If both ``crs``
        and ``crs_wkt`` keyword arguments are passed, the latter will
        trump the former.

        In 'w' mode, kwargs will be mapped to OGR layer creation
        options.

        """
        self._closed = True

        if not isinstance(path, (str, Path)):
            raise TypeError("invalid path: %r" % path)
        if not isinstance(mode, str) or mode not in ("r", "w", "a"):
            raise TypeError("invalid mode: %r" % mode)
        if driver and not isinstance(driver, str):
            raise TypeError("invalid driver: %r" % driver)
        if schema and not hasattr(schema, "get"):
            raise TypeError("invalid schema: %r" % schema)

        # Rasterio's CRS is compatible with Fiona. This class
        # constructor only requires that the crs value have a to_wkt()
        # method.
        if (
            crs
            and not isinstance(crs, compat.DICT_TYPES + (str, CRS))
            and not (hasattr(crs, "to_wkt") and callable(crs.to_wkt))
        ):
            raise TypeError("invalid crs: %r" % crs)

        if crs_wkt and not isinstance(crs_wkt, str):
            raise TypeError("invalid crs_wkt: %r" % crs_wkt)
        if encoding and not isinstance(encoding, str):
            raise TypeError("invalid encoding: %r" % encoding)
        if layer and not isinstance(layer, (str, int)):
            raise TypeError("invalid name: %r" % layer)
        if vsi:
            if not isinstance(vsi, str) or not vfs.valid_vsi(vsi):
                raise TypeError("invalid vsi: %r" % vsi)
        if archive and not isinstance(archive, str):
            raise TypeError("invalid archive: %r" % archive)
        if ignore_fields is not None and include_fields is not None:
            raise ValueError("Cannot specify both 'ignore_fields' and 'include_fields'")

        if mode == "w" and driver is None:
            driver = driver_from_extension(path)

        # Check GDAL version against drivers
        if (
            driver in driver_mode_mingdal[mode]
            and get_gdal_version_tuple() < driver_mode_mingdal[mode][driver]
        ):
            min_gdal_version = ".".join(
                list(map(str, driver_mode_mingdal[mode][driver]))
            )

            raise DriverError(
                "{driver} driver requires at least GDAL {min_gdal_version} for mode '{mode}', "
                "Fiona was compiled against: {gdal}".format(
                    driver=driver,
                    mode=mode,
                    min_gdal_version=min_gdal_version,
                    gdal=get_gdal_release_name(),
                )
            )

        self.session = None
        self.iterator = None
        self._len = 0
        self._bounds = None
        self._driver = None
        self._schema = None
        self._crs = None
        self._crs_wkt = None
        self.enabled_drivers = enabled_drivers
        self.include_fields = include_fields
        self.ignore_fields = ignore_fields
        self.ignore_geometry = bool(ignore_geometry)
        self._allow_unsupported_drivers = allow_unsupported_drivers
        self._env = None
        self._closed = True

        # Check GDAL version against drivers
        if (
            driver in driver_mode_mingdal[mode]
            and get_gdal_version_tuple() < driver_mode_mingdal[mode][driver]
        ):
            min_gdal_version = ".".join(
                list(map(str, driver_mode_mingdal[mode][driver]))
            )

            raise DriverError(
                "{driver} driver requires at least GDAL {min_gdal_version} for mode '{mode}', "
                "Fiona was compiled against: {gdal}".format(
                    driver=driver,
                    mode=mode,
                    min_gdal_version=min_gdal_version,
                    gdal=get_gdal_release_name(),
                )
            )

        if vsi:
            self.path = vfs.vsi_path(path, vsi, archive)
            path = parse_path(self.path)
        else:
            path = parse_path(path)
            self.path = vsi_path(path)

        if mode == "w":
            if layer and not isinstance(layer, str):
                raise ValueError("in 'w' mode, layer names must be strings")
            if driver == "GeoJSON":
                if layer is not None:
                    raise ValueError("the GeoJSON format does not have layers")
                self.name = "OgrGeoJSON"
            # TODO: raise ValueError as above for other single-layer formats.
            else:
                self.name = layer or os.path.basename(os.path.splitext(path.path)[0])
        else:
            if layer in (0, None):
                self.name = 0
            else:
                self.name = layer or os.path.basename(os.path.splitext(path)[0])

        self.mode = mode

        if self.mode == "w":
            if driver == "Shapefile":
                driver = "ESRI Shapefile"
            if not driver:
                raise DriverError("no driver")
            if not allow_unsupported_drivers:
                if driver not in supported_drivers:
>                   raise DriverError("unsupported driver: %r" % driver)
E                   fiona.errors.DriverError: unsupported driver: 'GPX'

../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/collection.py:211: DriverError
------------------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------------------
DEBUG    fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
========================================================================================= XFAILURES =========================================================================================
________________________________________________________________________ TestUnicodeStringField.test_write_mismatch _________________________________________________________________________

self = <tests.test_unicode.TestUnicodeStringField testMethod=test_write_mismatch>

    @pytest.mark.xfail(reason="OGR silently fails to convert strings")
    def test_write_mismatch(self):
        """TOFIX: OGR silently fails to convert strings"""
        # Details:
        #
        # If we tell OGR that we want a latin-1 encoded output file and
        # give it a feature with a unicode property that can't be converted
        # to latin-1, no error is raised and OGR just writes the utf-8
        # encoded bytes to the output file.
        #
        # This might be shapefile specific.
        #
        # Consequences: no error on write, but there will be an error
        # on reading the data and expecting latin-1.
        schema = {"geometry": "Point", "properties": {"label": "str", "num": "int"}}

        with fiona.open(
            os.path.join(self.tempdir, "test-write-fail.shp"),
            "w",
            driver="ESRI Shapefile",
            schema=schema,
            encoding="latin1",
        ) as c:
            c.writerecords(
                [
                    {
                        "type": "Feature",
                        "geometry": {"type": "Point", "coordinates": [0, 0]},
                        "properties": {"label": "徐汇区", "num": 0},
                    }
                ]
            )

        with fiona.open(os.path.join(self.tempdir), encoding="latin1") as c:
            f = next(iter(c))
            # Next assert fails.
>           assert f.properties["label"] == "徐汇区"
E           AssertionError

tests/test_unicode.py:86: AssertionError
------------------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------------------
DEBUG    fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
DEBUG    fiona.ogrext:collection.py:246 File doesn't exist. Creating a new one...
DEBUG    fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
DEBUG    fiona.ogrext:collection.py:246 Created layer test-write-fail
DEBUG    fiona.ogrext:collection.py:246 Writing started
DEBUG    fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
DEBUG    fiona.ogrext:collection.py:558 Transaction supported: 0
WARNING  fiona._env:collection.py:558 One or several characters couldn't be converted correctly from UTF-8 to LATIN1.  This warning will not be emitted anymore
DEBUG    fiona.ogrext:collection.py:667 Flushed data source cache
DEBUG    fiona.collection:collection.py:678 Flushed buffer
DEBUG    fiona.collection:collection.py:680 Stopped session
DEBUG    fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
DEBUG    fiona.ogrext:collection.py:453 OLC_FASTSETNEXTBYINDEX: 1
DEBUG    fiona.ogrext:collection.py:453 OLC_FASTFEATURECOUNT: 1
DEBUG    fiona.ogrext:collection.py:453 Next index: 0
DEBUG    fiona.ogrext:test_unicode.py:84 Next index: 1
DEBUG    fiona.collection:collection.py:678 Flushed buffer
DEBUG    fiona.collection:collection.py:680 Stopped session
========================================================================================== XPASSES ==========================================================================================
______________________________________________________________________________ VsiReadingTest.test_filter_vsi _______________________________________________________________________________
------------------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------------------
DEBUG    fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.

DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.

DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.

DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.

DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.

DEBUG    fiona._env:env.py:315 PROJ data files are available at built-in paths.

SKIPPED [9] tests/test_datetime.py:474: use '-m gdal' to run GDAL related tests.
SKIPPED [30] tests/test_datetime.py:691: use '-m gdal' to run GDAL related tests.
SKIPPED [12] tests/test_datetime.py:731: use '-m gdal' to run GDAL related tests.
SKIPPED [12] tests/test_datetime.py:745: use '-m gdal' to run GDAL related tests.
SKIPPED [9] tests/test_datetime.py:807: use '-m gdal' to run GDAL related tests.
SKIPPED [4] tests/test_drvsupport.py:18: use '-m gdal' to run GDAL related tests.
SKIPPED [14] tests/test_drvsupport.py:26: use '-m gdal' to run GDAL related tests.
SKIPPED [5] tests/test_drvsupport.py:67: use '-m gdal' to run GDAL related tests.
SKIPPED [11] tests/test_drvsupport.py:99: use '-m gdal' to run GDAL related tests.
SKIPPED [7] tests/test_drvsupport.py:157: use '-m gdal' to run GDAL related tests.
SKIPPED [5] tests/test_drvsupport.py:219: use '-m gdal' to run GDAL related tests.
SKIPPED [3] tests/test_drvsupport.py:243: use '-m gdal' to run GDAL related tests.
SKIPPED [1] tests/test_memoryfile.py:297: FileGDB driver not available
SKIPPED [2] tests/test_schema.py:225: Only relevant for GDAL 1.x
SKIPPED [1] tests/test_schema.py:241: Only relevant for GDAL 1.x
SKIPPED [1] tests/test_session.py:65: Only raises on GDAL 1.x
SKIPPED [1] tests/test_version.py:31: Requires travis CI environment
XFAIL tests/test_unicode.py::TestUnicodeStringField::test_write_mismatch - OGR silently fails to convert strings
XPASS tests/test_vfs.py::VsiReadingTest::test_filter_vsi - The number of features present in the archive differs based on the GDAL version.
XPASS tests/test_vfs.py::TestVsiReading::test_filter_vsi - The number of features present in the archive differs based on the GDAL version.
XPASS tests/test_vfs.py::TestZipReading::test_filter_vsi - The number of features present in the archive differs based on the GDAL version.
XPASS tests/test_vfs.py::TestZipArchiveReading::test_filter_vsi - The number of features present in the archive differs based on the GDAL version.
XPASS tests/test_vfs.py::TestZipArchiveReadingAbsPath::test_filter_vsi - The number of features present in the archive differs based on the GDAL version.
XPASS tests/test_vfs.py::TarArchiveReadingTest::test_filter_vsi - The number of features present in the archive differs based on the GDAL version.
FAILED tests/test_data_paths.py::test_gdal_data_wheel - AssertionError
FAILED tests/test_data_paths.py::test_proj_data_wheel - AssertionError
FAILED tests/test_data_paths.py::test_env_gdal_data_wheel - AssertionError
FAILED tests/test_data_paths.py::test_env_proj_data_wheel - AssertionError
FAILED tests/test_fio_calc.py::test_calc_seq - AssertionError
FAILED tests/test_fio_calc.py::test_bool_seq - AssertionError
FAILED tests/test_fio_calc.py::test_existing_property - AssertionError
FAILED tests/test_fio_cat.py::test_one - AssertionError
FAILED tests/test_fio_cat.py::test_two - AssertionError
FAILED tests/test_fio_cat.py::test_bbox_no - AssertionError
FAILED tests/test_fio_cat.py::test_bbox_yes - AssertionError
FAILED tests/test_fio_cat.py::test_bbox_yes_two_files - AssertionError
FAILED tests/test_fio_cat.py::test_bbox_json_yes - AssertionError
FAILED tests/test_fio_cat.py::test_bbox_where - AssertionError
FAILED tests/test_fio_cat.py::test_where_no - AssertionError
FAILED tests/test_fio_cat.py::test_where_yes - AssertionError