-
Notifications
You must be signed in to change notification settings - Fork 372
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tests failing with Werkzeug >=2.1.0 / remove all use of pytest-httpbin (and httpbin.org) from test suite? #645
Comments
Here is pytest output. At the enad are some pytest warnings as well. + PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-vcrpy-4.1.1-5.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-vcrpy-4.1.1-5.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.13, pytest-7.1.2, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/vcrpy-4.1.1
plugins: httpbin-1.0.2, anyio-3.5.0, asyncio-0.18.2, aiohttp-1.0.4, mock-3.7.0
asyncio: mode=auto
collected 389 items / 1 skipped
tests/integration/test_aiohttp.py ................................... [ 8%]
tests/integration/test_basic.py ..... [ 10%]
tests/integration/test_boto.py .FFFF [ 11%]
tests/integration/test_boto3.py sss [ 12%]
tests/integration/test_config.py ..... [ 13%]
tests/integration/test_disksaver.py .. [ 14%]
tests/integration/test_filter.py ........ [ 16%]
tests/integration/test_httplib2.py ......... [ 18%]
tests/integration/test_requests.py ............... [ 22%]
tests/integration/test_urllib2.py ......... [ 24%]
tests/integration/test_urllib3.py ........ [ 26%]
tests/integration/test_httplib2.py ......... [ 29%]
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
F [ 32%]
tests/integration/test_urllib2.py ......... [ 35%]
tests/integration/test_urllib3.py ........ [ 37%]
tests/integration/test_httplib2.py . [ 37%]
tests/integration/test_httpx.py ....................FF........FFFFFFFFFFFF [ 48%]
tests/integration/test_ignore.py .... [ 49%]
tests/integration/test_matchers.py .............. [ 52%]
tests/integration/test_multiple.py . [ 53%]
tests/integration/test_proxy.py . [ 53%]
tests/integration/test_record_mode.py ........ [ 55%]
tests/integration/test_register_matcher.py .. [ 56%]
tests/integration/test_register_persister.py .. [ 56%]
tests/integration/test_register_serializer.py . [ 56%]
tests/integration/test_request.py .. [ 57%]
tests/integration/test_requests.py .spytest-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... [ 58%]
tests/integration/test_stubs.py .... [ 59%]
tests/integration/test_urllib2.py . [ 60%]
tests/integration/test_urllib3.py ... [ 60%]
tests/integration/test_wild.py ...... [ 62%]
tests/unit/test_cassettes.py ............................. [ 69%]
tests/unit/test_errors.py .... [ 70%]
tests/unit/test_filters.py ................... [ 75%]
tests/unit/test_json_serializer.py . [ 76%]
tests/unit/test_matchers.py ......................... [ 82%]
tests/unit/test_migration.py ... [ 83%]
tests/unit/test_persist.py .... [ 84%]
tests/unit/test_request.py ................. [ 88%]
tests/unit/test_response.py .... [ 89%]
tests/unit/test_serialize.py ............... [ 93%]
tests/unit/test_stubs.py .. [ 94%]
tests/unit/test_vcr.py ...................... [ 99%]
tests/unit/test_vcr_import.py . [100%]
================================================================================= FAILURES =================================================================================
__________________________________________________________________________ test_boto_without_vcr ___________________________________________________________________________
def test_boto_without_vcr():
> s3_conn = S3Connection()
tests/integration/test_boto.py:26:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/site-packages/boto/s3/connection.py:188: in __init__
super(S3Connection, self).__init__(host,
/usr/lib/python3.8/site-packages/boto/connection.py:568: in __init__
self._auth_handler = auth.get_auth_handler(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
host = 's3.amazonaws.com', config = <boto.pyami.config.Config object at 0x7fbb7e2119d0>, provider = <boto.provider.Provider object at 0x7fbb7d953280>
requested_capability = ['s3']
def get_auth_handler(host, config, provider, requested_capability=None):
"""Finds an AuthHandler that is ready to authenticate.
Lists through all the registered AuthHandlers to find one that is willing
to handle for the requested capabilities, config and provider.
:type host: string
:param host: The name of the host
:type config:
:param config:
:type provider:
:param provider:
Returns:
An implementation of AuthHandler.
Raises:
boto.exception.NoAuthHandlerFound
"""
ready_handlers = []
auth_handlers = boto.plugin.get_plugin(AuthHandler, requested_capability)
for handler in auth_handlers:
try:
ready_handlers.append(handler(host, config, provider))
except boto.auth_handler.NotReadyToAuthenticate:
pass
if not ready_handlers:
checked_handlers = auth_handlers
names = [handler.__name__ for handler in checked_handlers]
> raise boto.exception.NoAuthHandlerFound(
'No handler was ready to authenticate. %d handlers were checked.'
' %s '
'Check your credentials' % (len(names), str(names)))
E boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] Check your credentials
/usr/lib/python3.8/site-packages/boto/auth.py:1018: NoAuthHandlerFound
---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
ERROR boto:utils.py:230 Caught exception reading instance data
Traceback (most recent call last):
File "/usr/lib64/python3.8/urllib/request.py", line 1354, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File "/usr/lib64/python3.8/http/client.py", line 1256, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1302, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1251, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1011, in _send_output
self.send(msg)
File "/usr/lib64/python3.8/http/client.py", line 951, in send
self.connect()
File "/usr/lib64/python3.8/http/client.py", line 922, in connect
self.sock = self._create_connection(
File "/usr/lib64/python3.8/socket.py", line 808, in create_connection
raise err
File "/usr/lib64/python3.8/socket.py", line 796, in create_connection
sock.connect(sa)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/boto/utils.py", line 217, in retry_url
r = opener.open(req, timeout=timeout)
File "/usr/lib64/python3.8/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/usr/lib64/python3.8/urllib/request.py", line 542, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "/usr/lib64/python3.8/urllib/request.py", line 502, in _call_chain
result = func(*args)
File "/usr/lib64/python3.8/urllib/request.py", line 1383, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "/usr/lib64/python3.8/urllib/request.py", line 1357, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error timed out>
ERROR boto:utils.py:236 Unable to read instance data, giving up
_______________________________________________________________________ test_boto_medium_difficulty ________________________________________________________________________
tmpdir = local('/tmp/pytest-of-tkloczko/pytest-48/test_boto_medium_difficulty0')
def test_boto_medium_difficulty(tmpdir):
> s3_conn = S3Connection()
tests/integration/test_boto.py:34:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/site-packages/boto/s3/connection.py:188: in __init__
super(S3Connection, self).__init__(host,
/usr/lib/python3.8/site-packages/boto/connection.py:568: in __init__
self._auth_handler = auth.get_auth_handler(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
host = 's3.amazonaws.com', config = <boto.pyami.config.Config object at 0x7fbb7e2119d0>, provider = <boto.provider.Provider object at 0x7fbb7cc27310>
requested_capability = ['s3']
def get_auth_handler(host, config, provider, requested_capability=None):
"""Finds an AuthHandler that is ready to authenticate.
Lists through all the registered AuthHandlers to find one that is willing
to handle for the requested capabilities, config and provider.
:type host: string
:param host: The name of the host
:type config:
:param config:
:type provider:
:param provider:
Returns:
An implementation of AuthHandler.
Raises:
boto.exception.NoAuthHandlerFound
"""
ready_handlers = []
auth_handlers = boto.plugin.get_plugin(AuthHandler, requested_capability)
for handler in auth_handlers:
try:
ready_handlers.append(handler(host, config, provider))
except boto.auth_handler.NotReadyToAuthenticate:
pass
if not ready_handlers:
checked_handlers = auth_handlers
names = [handler.__name__ for handler in checked_handlers]
> raise boto.exception.NoAuthHandlerFound(
'No handler was ready to authenticate. %d handlers were checked.'
' %s '
'Check your credentials' % (len(names), str(names)))
E boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] Check your credentials
/usr/lib/python3.8/site-packages/boto/auth.py:1018: NoAuthHandlerFound
---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
ERROR boto:utils.py:230 Caught exception reading instance data
Traceback (most recent call last):
File "/usr/lib64/python3.8/urllib/request.py", line 1354, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File "/usr/lib64/python3.8/http/client.py", line 1256, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1302, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1251, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1011, in _send_output
self.send(msg)
File "/usr/lib64/python3.8/http/client.py", line 951, in send
self.connect()
File "/usr/lib64/python3.8/http/client.py", line 922, in connect
self.sock = self._create_connection(
File "/usr/lib64/python3.8/socket.py", line 808, in create_connection
raise err
File "/usr/lib64/python3.8/socket.py", line 796, in create_connection
sock.connect(sa)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/boto/utils.py", line 217, in retry_url
r = opener.open(req, timeout=timeout)
File "/usr/lib64/python3.8/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/usr/lib64/python3.8/urllib/request.py", line 542, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "/usr/lib64/python3.8/urllib/request.py", line 502, in _call_chain
result = func(*args)
File "/usr/lib64/python3.8/urllib/request.py", line 1383, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "/usr/lib64/python3.8/urllib/request.py", line 1357, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error timed out>
ERROR boto:utils.py:236 Unable to read instance data, giving up
_________________________________________________________________________ test_boto_hardcore_mode __________________________________________________________________________
tmpdir = local('/tmp/pytest-of-tkloczko/pytest-48/test_boto_hardcore_mode0')
def test_boto_hardcore_mode(tmpdir):
with vcr.use_cassette(str(tmpdir.join("boto-hardcore.yml"))):
> s3_conn = S3Connection()
tests/integration/test_boto.py:49:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/site-packages/boto/s3/connection.py:188: in __init__
super(S3Connection, self).__init__(host,
/usr/lib/python3.8/site-packages/boto/connection.py:568: in __init__
self._auth_handler = auth.get_auth_handler(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
host = 's3.amazonaws.com', config = <boto.pyami.config.Config object at 0x7fbb7e2119d0>, provider = <boto.provider.Provider object at 0x7fbb7d7ebc40>
requested_capability = ['s3']
def get_auth_handler(host, config, provider, requested_capability=None):
"""Finds an AuthHandler that is ready to authenticate.
Lists through all the registered AuthHandlers to find one that is willing
to handle for the requested capabilities, config and provider.
:type host: string
:param host: The name of the host
:type config:
:param config:
:type provider:
:param provider:
Returns:
An implementation of AuthHandler.
Raises:
boto.exception.NoAuthHandlerFound
"""
ready_handlers = []
auth_handlers = boto.plugin.get_plugin(AuthHandler, requested_capability)
for handler in auth_handlers:
try:
ready_handlers.append(handler(host, config, provider))
except boto.auth_handler.NotReadyToAuthenticate:
pass
if not ready_handlers:
checked_handlers = auth_handlers
names = [handler.__name__ for handler in checked_handlers]
> raise boto.exception.NoAuthHandlerFound(
'No handler was ready to authenticate. %d handlers were checked.'
' %s '
'Check your credentials' % (len(names), str(names)))
E boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] Check your credentials
/usr/lib/python3.8/site-packages/boto/auth.py:1018: NoAuthHandlerFound
---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
ERROR boto:utils.py:230 Caught exception reading instance data
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/boto/utils.py", line 217, in retry_url
r = opener.open(req, timeout=timeout)
File "/usr/lib64/python3.8/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/usr/lib64/python3.8/urllib/request.py", line 542, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "/usr/lib64/python3.8/urllib/request.py", line 502, in _call_chain
result = func(*args)
File "/usr/lib64/python3.8/urllib/request.py", line 1383, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "/usr/lib64/python3.8/urllib/request.py", line 1358, in do_open
r = h.getresponse()
File "/home/tkloczko/rpmbuild/BUILDROOT/python-vcrpy-4.1.1-5.fc35.x86_64/usr/lib/python3.8/site-packages/vcr/stubs/__init__.py", line 244, in getresponse
self.real_connection.request(
File "/usr/lib64/python3.8/http/client.py", line 1256, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1302, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1251, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1011, in _send_output
self.send(msg)
File "/usr/lib64/python3.8/http/client.py", line 951, in send
self.connect()
File "/usr/lib64/python3.8/http/client.py", line 922, in connect
self.sock = self._create_connection(
File "/usr/lib64/python3.8/socket.py", line 808, in create_connection
raise err
File "/usr/lib64/python3.8/socket.py", line 796, in create_connection
sock.connect(sa)
socket.timeout: timed out
ERROR boto:utils.py:236 Unable to read instance data, giving up
______________________________________________________________________________ test_boto_iam _______________________________________________________________________________
tmpdir = local('/tmp/pytest-of-tkloczko/pytest-48/test_boto_iam0')
def test_boto_iam(tmpdir):
try:
boto.config.add_section("Boto")
except DuplicateSectionError:
pass
# Ensure that boto uses HTTPS
boto.config.set("Boto", "is_secure", "true")
# Ensure that boto uses CertValidatingHTTPSConnection
boto.config.set("Boto", "https_validate_certificates", "true")
with vcr.use_cassette(str(tmpdir.join("boto-iam.yml"))):
> iam_conn = boto.iam.connect_to_region("universal")
tests/integration/test_boto.py:74:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/site-packages/boto/iam/__init__.py:90: in connect_to_region
return region.connect(**kw_params)
/usr/lib/python3.8/site-packages/boto/iam/__init__.py:44: in connect
return self.connection_cls(host=self.endpoint, **kw_params)
/usr/lib/python3.8/site-packages/boto/iam/connection.py:66: in __init__
super(IAMConnection, self).__init__(aws_access_key_id,
/usr/lib/python3.8/site-packages/boto/connection.py:1091: in __init__
super(AWSQueryConnection, self).__init__(
/usr/lib/python3.8/site-packages/boto/connection.py:568: in __init__
self._auth_handler = auth.get_auth_handler(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
host = 'iam.amazonaws.com', config = <boto.pyami.config.Config object at 0x7fbb7e2119d0>, provider = <boto.provider.Provider object at 0x7fbb7cd1c4c0>
requested_capability = ['hmac-v4']
def get_auth_handler(host, config, provider, requested_capability=None):
"""Finds an AuthHandler that is ready to authenticate.
Lists through all the registered AuthHandlers to find one that is willing
to handle for the requested capabilities, config and provider.
:type host: string
:param host: The name of the host
:type config:
:param config:
:type provider:
:param provider:
Returns:
An implementation of AuthHandler.
Raises:
boto.exception.NoAuthHandlerFound
"""
ready_handlers = []
auth_handlers = boto.plugin.get_plugin(AuthHandler, requested_capability)
for handler in auth_handlers:
try:
ready_handlers.append(handler(host, config, provider))
except boto.auth_handler.NotReadyToAuthenticate:
pass
if not ready_handlers:
checked_handlers = auth_handlers
names = [handler.__name__ for handler in checked_handlers]
> raise boto.exception.NoAuthHandlerFound(
'No handler was ready to authenticate. %d handlers were checked.'
' %s '
'Check your credentials' % (len(names), str(names)))
E boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV4Handler'] Check your credentials
/usr/lib/python3.8/site-packages/boto/auth.py:1018: NoAuthHandlerFound
---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
ERROR boto:utils.py:230 Caught exception reading instance data
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/boto/utils.py", line 217, in retry_url
r = opener.open(req, timeout=timeout)
File "/usr/lib64/python3.8/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/usr/lib64/python3.8/urllib/request.py", line 542, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "/usr/lib64/python3.8/urllib/request.py", line 502, in _call_chain
result = func(*args)
File "/usr/lib64/python3.8/urllib/request.py", line 1383, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "/usr/lib64/python3.8/urllib/request.py", line 1358, in do_open
r = h.getresponse()
File "/home/tkloczko/rpmbuild/BUILDROOT/python-vcrpy-4.1.1-5.fc35.x86_64/usr/lib/python3.8/site-packages/vcr/stubs/__init__.py", line 244, in getresponse
self.real_connection.request(
File "/usr/lib64/python3.8/http/client.py", line 1256, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1302, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1251, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1011, in _send_output
self.send(msg)
File "/usr/lib64/python3.8/http/client.py", line 951, in send
self.connect()
File "/usr/lib64/python3.8/http/client.py", line 922, in connect
self.sock = self._create_connection(
File "/usr/lib64/python3.8/socket.py", line 808, in create_connection
raise err
File "/usr/lib64/python3.8/socket.py", line 796, in create_connection
sock.connect(sa)
socket.timeout: timed out
ERROR boto:utils.py:236 Unable to read instance data, giving up
_________________________________________________________________________ test_status_code[https] __________________________________________________________________________
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7fbb7cd14850>, method = 'GET', url = '/', body = None
headers = {'User-Agent': 'python-requests/2.27.1', 'Accept-Encoding': 'gzip, deflate, br', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False
timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None, release_conn = False, chunked = False, body_pos = None
response_kw = {'decode_content': False, 'preload_content': False}, parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True, http_tunnel_required = False, err = None, clean_exit = False
def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.
.. note::
More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.
.. note::
`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.
:param method:
HTTP request method (such as GET, POST, PUT, etc.)
:param url:
The URL to perform the request on.
:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.
:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.
:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.
Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.
If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.
:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.
:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.
:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.
:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.
:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.
:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.
:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.
:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""
parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme
if headers is None:
headers = self.headers
if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
if release_conn is None:
release_conn = response_kw.get("preload_content", True)
# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)
# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)
conn = None
# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn
http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)
# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)
# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None
# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False
# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)
try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)
conn.timeout = timeout_obj.connect_timeout
is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)
# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)
/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7fbb7cd14850>
conn = <vcr.patch.VCRRequestsHTTPSConnection/tmp/pytest-of-tkloczko/pytest-48/test_status_code_https_0/atts.yaml object at 0x7fbb7cd14460>, method = 'GET', url = '/'
timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': None, 'headers': {'User-Agent': 'python-requests/2.27.1', 'Accept-Encoding': 'gzip, deflate, br', 'Accept': '*/*', 'Connection': 'keep-alive'}}
timeout_obj = Timeout(connect=None, read=None, total=None)
def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.
:param conn:
a connection from one of our connection pools
:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1
timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout
# Trigger any extra validation we need to do.
try:
> self._validate_conn(conn)
/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:386:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7fbb7cd14850>
conn = <vcr.patch.VCRRequestsHTTPSConnection/tmp/pytest-of-tkloczko/pytest-48/test_status_code_https_0/atts.yaml object at 0x7fbb7cd14460>
def _validate_conn(self, conn):
"""
Called right before a request is made, after the socket is created.
"""
super(HTTPSConnectionPool, self)._validate_conn(conn)
# Force connect early to allow us to validate the connection.
if not getattr(conn, "sock", None): # AppEngine might not have `.sock`
> conn.connect()
/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:1040:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <vcr.patch.VCRRequestsHTTPSConnection/tmp/pytest-of-tkloczko/pytest-48/test_status_code_https_0/atts.yaml object at 0x7fbb7cd14460>, args = (), kwargs = {}
force_reset = <function force_reset at 0x7fbb7dfadee0>
def connect(self, *args, **kwargs):
"""
httplib2 uses this. Connects to the server I'm assuming.
Only pass to the baseclass if we don't have a recorded response
and are not write-protected.
"""
if hasattr(self, "_vcr_request") and self.cassette.can_play_response_for(self._vcr_request):
# We already have a response we are going to play, don't
# actually connect
return
if self.cassette.write_protected:
# Cassette is write-protected, don't actually connect
return
from vcr.patch import force_reset
with force_reset():
> return self.real_connection.connect(*args, **kwargs)
../../BUILDROOT/python-vcrpy-4.1.1-5.fc35.x86_64/usr/lib/python3.8/site-packages/vcr/stubs/__init__.py:286:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <urllib3.connection.HTTPSConnection object at 0x7fbb7cd11250>
def connect(self):
# Add certificate verification
self.sock = conn = self._new_conn()
hostname = self.host
tls_in_tls = False
if self._is_using_tunnel():
if self.tls_in_tls_required:
self.sock = conn = self._connect_tls_proxy(hostname, conn)
tls_in_tls = True
# Calls self._set_hostport(), so self.host is
# self._tunnel_host below.
self._tunnel()
# Mark this connection as not reusable
self.auto_open = 0
# Override the host with the one we're requesting data from.
hostname = self._tunnel_host
server_hostname = hostname
if self.server_hostname is not None:
server_hostname = self.server_hostname
is_time_off = datetime.date.today() < RECENT_DATE
if is_time_off:
warnings.warn(
(
"System time is way off (before {0}). This will probably "
"lead to SSL verification errors"
).format(RECENT_DATE),
SystemTimeWarning,
)
# Wrap socket using verification with the root certs in
# trusted_root_certs
default_ssl_context = False
if self.ssl_context is None:
default_ssl_context = True
self.ssl_context = create_urllib3_context(
ssl_version=resolve_ssl_version(self.ssl_version),
cert_reqs=resolve_cert_reqs(self.cert_reqs),
)
context = self.ssl_context
context.verify_mode = resolve_cert_reqs(self.cert_reqs)
# Try to load OS default certs if none are given.
# Works well on Windows (requires Python3.4+)
if (
not self.ca_certs
and not self.ca_cert_dir
and not self.ca_cert_data
and default_ssl_context
and hasattr(context, "load_default_certs")
):
context.load_default_certs()
> self.sock = ssl_wrap_socket(
sock=conn,
keyfile=self.key_file,
certfile=self.cert_file,
key_password=self.key_password,
ca_certs=self.ca_certs,
ca_cert_dir=self.ca_cert_dir,
ca_cert_data=self.ca_cert_data,
server_hostname=server_hostname,
ssl_context=context,
tls_in_tls=tls_in_tls,
)
/usr/lib/python3.8/site-packages/urllib3/connection.py:414:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
sock = <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>, keyfile = None, certfile = None, cert_reqs = None
ca_certs = '/etc/pki/tls/certs/ca-bundle.crt', server_hostname = '127.0.0.1', ssl_version = None, ciphers = None, ssl_context = <ssl.SSLContext object at 0x7fbb7cd0c1c0>
ca_cert_dir = None, key_password = None, ca_cert_data = None, tls_in_tls = False
def ssl_wrap_socket(
sock,
keyfile=None,
certfile=None,
cert_reqs=None,
ca_certs=None,
server_hostname=None,
ssl_version=None,
ciphers=None,
ssl_context=None,
ca_cert_dir=None,
key_password=None,
ca_cert_data=None,
tls_in_tls=False,
):
"""
All arguments except for server_hostname, ssl_context, and ca_cert_dir have
the same meaning as they do when using :func:`ssl.wrap_socket`.
:param server_hostname:
When SNI is supported, the expected hostname of the certificate
:param ssl_context:
A pre-made :class:`SSLContext` object. If none is provided, one will
be created using :func:`create_urllib3_context`.
:param ciphers:
A string of ciphers we wish the client to support.
:param ca_cert_dir:
A directory containing CA certificates in multiple separate files, as
supported by OpenSSL's -CApath flag or the capath argument to
SSLContext.load_verify_locations().
:param key_password:
Optional password if the keyfile is encrypted.
:param ca_cert_data:
Optional string containing CA certificates in PEM format suitable for
passing as the cadata parameter to SSLContext.load_verify_locations()
:param tls_in_tls:
Use SSLTransport to wrap the existing socket.
"""
context = ssl_context
if context is None:
# Note: This branch of code and all the variables in it are no longer
# used by urllib3 itself. We should consider deprecating and removing
# this code.
context = create_urllib3_context(ssl_version, cert_reqs, ciphers=ciphers)
if ca_certs or ca_cert_dir or ca_cert_data:
try:
context.load_verify_locations(ca_certs, ca_cert_dir, ca_cert_data)
except (IOError, OSError) as e:
raise SSLError(e)
elif ssl_context is None and hasattr(context, "load_default_certs"):
# try to load OS default certs; works well on Windows (require Python3.4+)
context.load_default_certs()
# Attempt to detect if we get the goofy behavior of the
# keyfile being encrypted and OpenSSL asking for the
# passphrase via the terminal and instead error out.
if keyfile and key_password is None and _is_key_file_encrypted(keyfile):
raise SSLError("Client private key is encrypted, password is required")
if certfile:
if key_password is None:
context.load_cert_chain(certfile, keyfile)
else:
context.load_cert_chain(certfile, keyfile, key_password)
try:
if hasattr(context, "set_alpn_protocols"):
context.set_alpn_protocols(ALPN_PROTOCOLS)
except NotImplementedError: # Defensive: in CI, we always have set_alpn_protocols
pass
# If we detect server_hostname is an IP address then the SNI
# extension should not be used according to RFC3546 Section 3.1
use_sni_hostname = server_hostname and not is_ipaddress(server_hostname)
# SecureTransport uses server_hostname in certificate verification.
send_sni = (use_sni_hostname and HAS_SNI) or (
IS_SECURETRANSPORT and server_hostname
)
# Do not warn the user if server_hostname is an invalid SNI hostname.
if not HAS_SNI and use_sni_hostname:
warnings.warn(
"An HTTPS request has been made, but the SNI (Server Name "
"Indication) extension to TLS is not available on this platform. "
"This may cause the server to present an incorrect TLS "
"certificate, which can cause validation failures. You can upgrade to "
"a newer version of Python to solve this. For more information, see "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#ssl-warnings",
SNIMissingWarning,
)
if send_sni:
ssl_sock = _ssl_wrap_socket_impl(
sock, context, tls_in_tls, server_hostname=server_hostname
)
else:
> ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls)
/usr/lib/python3.8/site-packages/urllib3/util/ssl_.py:453:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
sock = <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>, ssl_context = <ssl.SSLContext object at 0x7fbb7cd0c1c0>
tls_in_tls = False, server_hostname = None
def _ssl_wrap_socket_impl(sock, ssl_context, tls_in_tls, server_hostname=None):
if tls_in_tls:
if not SSLTransport:
# Import error, ssl is not available.
raise ProxySchemeUnsupported(
"TLS in TLS requires support for the 'ssl' module"
)
SSLTransport._validate_ssl_context_for_tls_in_tls(ssl_context)
return SSLTransport(sock, ssl_context, server_hostname)
if server_hostname:
return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
else:
> return ssl_context.wrap_socket(sock)
/usr/lib/python3.8/site-packages/urllib3/util/ssl_.py:495:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <ssl.SSLContext object at 0x7fbb7cd0c1c0>, sock = <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>
server_side = False, do_handshake_on_connect = True, suppress_ragged_eofs = True, server_hostname = None, session = None
def wrap_socket(self, sock, server_side=False,
do_handshake_on_connect=True,
suppress_ragged_eofs=True,
server_hostname=None, session=None):
# SSLSocket class handles server_hostname encoding before it calls
# ctx._wrap_socket()
> return self.sslsocket_class._create(
sock=sock,
server_side=server_side,
do_handshake_on_connect=do_handshake_on_connect,
suppress_ragged_eofs=suppress_ragged_eofs,
server_hostname=server_hostname,
context=self,
session=session
)
/usr/lib64/python3.8/ssl.py:500:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls = <class 'ssl.SSLSocket'>, sock = <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>, server_side = False
do_handshake_on_connect = True, suppress_ragged_eofs = True, server_hostname = None, context = <ssl.SSLContext object at 0x7fbb7cd0c1c0>, session = None
@classmethod
def _create(cls, sock, server_side=False, do_handshake_on_connect=True,
suppress_ragged_eofs=True, server_hostname=None,
context=None, session=None):
if sock.getsockopt(SOL_SOCKET, SO_TYPE) != SOCK_STREAM:
raise NotImplementedError("only stream sockets are supported")
if server_side:
if server_hostname:
raise ValueError("server_hostname can only be specified "
"in client mode")
if session is not None:
raise ValueError("session can only be specified in "
"client mode")
if context.check_hostname and not server_hostname:
raise ValueError("check_hostname requires server_hostname")
kwargs = dict(
family=sock.family, type=sock.type, proto=sock.proto,
fileno=sock.fileno()
)
self = cls.__new__(cls, **kwargs)
super(SSLSocket, self).__init__(**kwargs)
self.settimeout(sock.gettimeout())
sock.detach()
self._context = context
self._session = session
self._closed = False
self._sslobj = None
self.server_side = server_side
self.server_hostname = context._encode_hostname(server_hostname)
self.do_handshake_on_connect = do_handshake_on_connect
self.suppress_ragged_eofs = suppress_ragged_eofs
# See if we are connected
try:
self.getpeername()
except OSError as e:
if e.errno != errno.ENOTCONN:
raise
connected = False
else:
connected = True
self._connected = connected
if connected:
# create the SSL object
try:
self._sslobj = self._context._wrap_socket(
self, server_side, self.server_hostname,
owner=self, session=self._session,
)
if do_handshake_on_connect:
timeout = self.gettimeout()
if timeout == 0.0:
# non-blocking
raise ValueError("do_handshake_on_connect should not be specified for non-blocking sockets")
> self.do_handshake()
/usr/lib64/python3.8/ssl.py:1040:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>, block = False
@_sslcopydoc
def do_handshake(self, block=False):
self._check_connected()
timeout = self.gettimeout()
try:
if timeout == 0.0 and block:
self.settimeout(None)
> self._sslobj.do_handshake()
E ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)
/usr/lib64/python3.8/ssl.py:1309: SSLCertVerificationError
During handling of the above exception, another exception occurred:
self = <requests.adapters.HTTPAdapter object at 0x7fbb7cd38970>, request = <PreparedRequest [GET]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()
def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
"""Sends PreparedRequest object. Returns Response object.
:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""
try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)
self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
chunked = not (request.body is None or 'Content-Length' in request.headers)
if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError as e:
# this may raise a string formatting error.
err = ("Invalid timeout {}. Pass a (connect, read) "
"timeout tuple, or a single float to set "
"both timeouts to the same value".format(timeout))
raise ValueError(err)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)
try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout
)
/usr/lib/python3.8/site-packages/requests/adapters.py:440:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7fbb7cd14850>, method = 'GET', url = '/', body = None
headers = {'User-Agent': 'python-requests/2.27.1', 'Accept-Encoding': 'gzip, deflate, br', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False
timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None, release_conn = False, chunked = False, body_pos = None
response_kw = {'decode_content': False, 'preload_content': False}, parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True, http_tunnel_required = False, err = None, clean_exit = False
def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.
.. note::
More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.
.. note::
`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.
:param method:
HTTP request method (such as GET, POST, PUT, etc.)
:param url:
The URL to perform the request on.
:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.
:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.
:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.
Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.
If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.
:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.
:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.
:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.
:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.
:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.
:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.
:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.
:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""
parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme
if headers is None:
headers = self.headers
if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
if release_conn is None:
release_conn = response_kw.get("preload_content", True)
# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)
# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)
conn = None
# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn
http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)
# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)
# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None
# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False
# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)
try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)
conn.timeout = timeout_obj.connect_timeout
is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)
# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)
# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None
# Pass method to Response for length checking
response_kw["request_method"] = method
# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)
# Everything went great!
clean_exit = True
except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise
except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False
def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)
# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)
> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)
/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:785:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'GET', url = '/', response = None
error = SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)'))
_pool = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7fbb7cd14850>, _stacktrace = <traceback object at 0x7fbb7cd1fd40>
def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.
:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.
:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)
total = self.total
if total is not None:
total -= 1
connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None
if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1
elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1
elif error:
# Other retry?
if other is not None:
other -= 1
elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status
else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status
history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)
new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)
if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)')))
/usr/lib/python3.8/site-packages/urllib3/util/retry.py:592: MaxRetryError
During handling of the above exception, another exception occurred:
httpbin_both = <pytest_httpbin.serve.SecureServer object at 0x7fbb7d876f40>, tmpdir = local('/tmp/pytest-of-tkloczko/pytest-48/test_status_code_https_0')
def test_status_code(httpbin_both, tmpdir):
"""Ensure that we can read the status code"""
url = httpbin_both.url + "/"
with vcr.use_cassette(str(tmpdir.join("atts.yaml"))):
> status_code = requests.get(url).status_code
tests/integration/test_requests.py:17:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/site-packages/requests/api.py:75: in get
return request('get', url, params=params, **kwargs)
/usr/lib/python3.8/site-packages/requests/api.py:61: in request
return session.request(method=method, url=url, **kwargs)
/usr/lib/python3.8/site-packages/requests/sessions.py:529: in request
resp = self.send(prep, **send_kwargs)
/usr/lib/python3.8/site-packages/requests/sessions.py:645: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <requests.adapters.HTTPAdapter object at 0x7fbb7cd38970>, request = <PreparedRequest [GET]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()
def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
"""Sends PreparedRequest object. Returns Response object.
:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""
try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)
self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
chunked = not (request.body is None or 'Content-Length' in request.headers)
if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError as e:
# this may raise a string formatting error.
err = ("Invalid timeout {}. Pass a (connect, read) "
"timeout tuple, or a single float to set "
"both timeouts to the same value".format(timeout))
raise ValueError(err)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)
try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout
)
# Send the request.
else:
if hasattr(conn, 'proxy_pool'):
conn = conn.proxy_pool
low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)
try:
skip_host = 'Host' in request.headers
low_conn.putrequest(request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host)
for header, value in request.headers.items():
low_conn.putheader(header, value)
low_conn.endheaders()
for i in request.body:
low_conn.send(hex(len(i))[2:].encode('utf-8'))
low_conn.send(b'\r\n')
low_conn.send(i)
low_conn.send(b'\r\n')
low_conn.send(b'0\r\n\r\n')
# Receive the response from the server
try:
# For Python 2.7, use buffering of HTTP responses
r = low_conn.getresponse(buffering=True)
except TypeError:
# For compatibility with Python 3.3+
r = low_conn.getresponse()
resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False
)
except:
# If we hit any problems here, clean up the connection.
# Then, reraise so that we can handle the actual exception.
low_conn.close()
raise
except (ProtocolError, socket.error) as err:
raise ConnectionError(err, request=request)
except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)
if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)
if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)
if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
> raise SSLError(e, request=request)
E requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)')))
/usr/lib/python3.8/site-packages/requests/adapters.py:517: SSLError
[..]
/usr/lib/python3.8/site-packages/requests/adapters.py:517: SSLError
============================================================================= warnings summary =============================================================================
../../../../../usr/lib/python3.8/site-packages/pytest_aiohttp/plugin.py:28
/usr/lib/python3.8/site-packages/pytest_aiohttp/plugin.py:28: DeprecationWarning: The 'asyncio_mode' is 'legacy', switching to 'auto' for the sake of pytest-aiohttp backward compatibility. Please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
config.issue_config_time_warning(LEGACY_MODE, stacklevel=2)
../../../../../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_proxy.py:42
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.1.1/tests/integration/test_proxy.py:42: PytestDeprecationWarning: @pytest.yield_fixture is deprecated.
Use @pytest.fixture instead; they are the same.
@pytest.yield_fixture(scope="session")
tests/integration/test_wild.py:86
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.1.1/tests/integration/test_wild.py:86: PytestDeprecationWarning: @pytest.yield_fixture is deprecated.
Use @pytest.fixture instead; they are the same.
@pytest.yield_fixture(scope="session")
tests/integration/test_httpx.py: 12 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:116: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
tests/integration/test_httpx.py: 12 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:172: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
tests/integration/test_httpx.py: 12 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:144: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
tests/integration/test_httpx.py: 12 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:191: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
tests/integration/test_httpx.py: 12 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:210: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
tests/integration/test_httpx.py: 12 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:229: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
========================================================================= short test summary info ==========================================================================
SKIPPED [1] tests/integration/test_tornado.py:12: could not import 'tornado': No module named 'tornado'
SKIPPED [1] tests/integration/test_boto3.py:58: botocore version 1.25.8 does not use vendored requests anymore.
SKIPPED [1] tests/integration/test_boto3.py:76: 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:94: 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_requests.py:119: condition: sys.version_info >= (3, 6)
FAILED tests/integration/test_boto.py::test_boto_without_vcr - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAu...
FAILED tests/integration/test_boto.py::test_boto_medium_difficulty - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['...
FAILED tests/integration/test_boto.py::test_boto_hardcore_mode - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['Hmac...
FAILED tests/integration/test_boto.py::test_boto_iam - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV4Hand...
FAILED tests/integration/test_requests.py::test_status_code[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max retries exceede...
FAILED tests/integration/test_requests.py::test_headers[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max retries exceeded wi...
FAILED tests/integration/test_requests.py::test_body[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max retries exceeded with ...
FAILED tests/integration/test_requests.py::test_get_empty_content_type_json[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max...
FAILED tests/integration/test_requests.py::test_effective_url[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max retries excee...
FAILED tests/integration/test_requests.py::test_auth[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max retries exceeded with ...
FAILED tests/integration/test_requests.py::test_auth_failed[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max retries exceede...
FAILED tests/integration/test_requests.py::test_post[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max retries exceeded with ...
FAILED tests/integration/test_requests.py::test_redirects[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max retries exceeded ...
FAILED tests/integration/test_requests.py::test_gzip[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max retries exceeded with ...
FAILED tests/integration/test_requests.py::test_session_created_before_use_cassette_is_patched[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1...
FAILED tests/integration/test_requests.py::test_nested_cassettes_with_session_created_before_nesting[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127...
FAILED tests/integration/test_requests.py::test_post_file[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max retries exceeded ...
FAILED tests/integration/test_requests.py::test_filter_post_params[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max retries ...
FAILED tests/integration/test_requests.py::test_post_unicode_match_on_body[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max ...
FAILED tests/integration/test_httpx.py::test_redirect[DoAsyncRequest] - vcr.errors.UnhandledHTTPRequestError: "The cassette ('/tmp/pytest-of-tkloczko/pytest-48/test_redi...
FAILED tests/integration/test_httpx.py::test_redirect[DoSyncRequest] - vcr.errors.UnhandledHTTPRequestError: "The cassette ('/tmp/pytest-of-tkloczko/pytest-48/test_redir...
FAILED tests/integration/test_httpx.py::test_behind_proxy[DoAsyncRequest] - ValueError: Proxy keys should use proper URL forms rather than plain scheme strings. Instead ...
FAILED tests/integration/test_httpx.py::test_behind_proxy[DoSyncRequest] - ValueError: Proxy keys should use proper URL forms rather than plain scheme strings. Instead o...
FAILED tests/integration/test_httpx.py::test_cookies[DoAsyncRequest-http] - IndexError: list index out of range
FAILED tests/integration/test_httpx.py::test_cookies[DoAsyncRequest-https] - IndexError: list index out of range
FAILED tests/integration/test_httpx.py::test_cookies[DoSyncRequest-http] - IndexError: list index out of range
FAILED tests/integration/test_httpx.py::test_cookies[DoSyncRequest-https] - IndexError: list index out of range
FAILED tests/integration/test_httpx.py::test_relative_redirects[DoAsyncRequest-http] - AssertionError: <Response [301 Moved Permanently]>
FAILED tests/integration/test_httpx.py::test_relative_redirects[DoAsyncRequest-https] - AssertionError: <Response [301 Moved Permanently]>
FAILED tests/integration/test_httpx.py::test_relative_redirects[DoSyncRequest-http] - AssertionError: <Response [301 Moved Permanently]>
FAILED tests/integration/test_httpx.py::test_relative_redirects[DoSyncRequest-https] - AssertionError: <Response [301 Moved Permanently]>
FAILED tests/integration/test_httpx.py::test_redirect_wo_allow_redirects[DoAsyncRequest] - TypeError: request() got an unexpected keyword argument 'allow_redirects'
FAILED tests/integration/test_httpx.py::test_redirect_wo_allow_redirects[DoSyncRequest] - TypeError: request() got an unexpected keyword argument 'allow_redirects'
FAILED tests/integration/test_requests.py::test_cross_scheme - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36463): Max retries exceeded with...
========================================================= 34 failed, 351 passed, 5 skipped, 76 warnings in 44.38s ========================================================== |
Version 4.1.1 is 1.5 years old. Maybe try grabbing from master? |
Just tested new 4.2.0. + PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-vcrpy-4.2.0-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-vcrpy-4.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.13, pytest-7.1.2, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.0
plugins: anyio-3.6.1, asyncio-0.18.2, aiohttp-1.0.4, httpbin-1.0.2, mock-3.8.1
asyncio: mode=auto
collected 390 items / 1 skipped
tests/integration/test_aiohttp.py .................................... [ 9%]
tests/integration/test_basic.py ..... [ 10%]
tests/integration/test_boto.py .FFFF [ 11%]
tests/integration/test_boto3.py sss [ 12%]
tests/integration/test_config.py ..... [ 13%]
tests/integration/test_disksaver.py .. [ 14%]
tests/integration/test_filter.py ........ [ 16%]
tests/integration/test_httplib2.py ........ [ 18%]
tests/integration/test_requests.py ............... [ 22%]
tests/integration/test_urllib2.py ........ [ 24%]
tests/integration/test_urllib3.py ....... [ 26%]
tests/integration/test_httplib2.py ........ [ 28%]
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
F [ 32%]
tests/integration/test_urllib2.py ........ [ 34%]
tests/integration/test_urllib3.py ....... [ 35%]
tests/integration/test_httplib2.py .. [ 36%]
tests/integration/test_httpx.py .......................................... [ 47%]
tests/integration/test_ignore.py .... [ 48%]
tests/integration/test_matchers.py .............. [ 51%]
tests/integration/test_multiple.py . [ 52%]
tests/integration/test_proxy.py . [ 52%]
tests/integration/test_record_mode.py ........ [ 54%]
tests/integration/test_register_matcher.py .. [ 54%]
tests/integration/test_register_persister.py .. [ 55%]
tests/integration/test_register_serializer.py . [ 55%]
tests/integration/test_request.py .. [ 56%]
tests/integration/test_requests.py .spytest-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... [ 57%]
tests/integration/test_stubs.py .... [ 58%]
tests/integration/test_urllib2.py .. [ 59%]
tests/integration/test_urllib3.py .... [ 60%]
tests/integration/test_wild.py ...... [ 61%]
tests/unit/test_cassettes.py ............................. [ 69%]
tests/unit/test_errors.py .... [ 70%]
tests/unit/test_filters.py ...................... [ 75%]
tests/unit/test_json_serializer.py . [ 76%]
tests/unit/test_matchers.py ......................... [ 82%]
tests/unit/test_migration.py ... [ 83%]
tests/unit/test_persist.py .... [ 84%]
tests/unit/test_request.py ................. [ 88%]
tests/unit/test_response.py .... [ 89%]
tests/unit/test_serialize.py ............... [ 93%]
tests/unit/test_stubs.py .. [ 94%]
tests/unit/test_vcr.py ...................... [ 99%]
tests/unit/test_vcr_import.py . [100%]
================================================================================= FAILURES =================================================================================
__________________________________________________________________________ test_boto_without_vcr ___________________________________________________________________________
def test_boto_without_vcr():
> s3_conn = S3Connection()
tests/integration/test_boto.py:26:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/site-packages/boto/s3/connection.py:188: in __init__
super(S3Connection, self).__init__(host,
/usr/lib/python3.8/site-packages/boto/connection.py:568: in __init__
self._auth_handler = auth.get_auth_handler(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
host = 's3.amazonaws.com', config = <boto.pyami.config.Config object at 0x7f8533abbb50>, provider = <boto.provider.Provider object at 0x7f8532fc0fd0>
requested_capability = ['s3']
def get_auth_handler(host, config, provider, requested_capability=None):
"""Finds an AuthHandler that is ready to authenticate.
Lists through all the registered AuthHandlers to find one that is willing
to handle for the requested capabilities, config and provider.
:type host: string
:param host: The name of the host
:type config:
:param config:
:type provider:
:param provider:
Returns:
An implementation of AuthHandler.
Raises:
boto.exception.NoAuthHandlerFound
"""
ready_handlers = []
auth_handlers = boto.plugin.get_plugin(AuthHandler, requested_capability)
for handler in auth_handlers:
try:
ready_handlers.append(handler(host, config, provider))
except boto.auth_handler.NotReadyToAuthenticate:
pass
if not ready_handlers:
checked_handlers = auth_handlers
names = [handler.__name__ for handler in checked_handlers]
> raise boto.exception.NoAuthHandlerFound(
'No handler was ready to authenticate. %d handlers were checked.'
' %s '
'Check your credentials' % (len(names), str(names)))
E boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] Check your credentials
/usr/lib/python3.8/site-packages/boto/auth.py:1018: NoAuthHandlerFound
---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
ERROR boto:utils.py:230 Caught exception reading instance data
Traceback (most recent call last):
File "/usr/lib64/python3.8/urllib/request.py", line 1354, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File "/usr/lib64/python3.8/http/client.py", line 1256, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1302, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1251, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1011, in _send_output
self.send(msg)
File "/usr/lib64/python3.8/http/client.py", line 951, in send
self.connect()
File "/usr/lib64/python3.8/http/client.py", line 922, in connect
self.sock = self._create_connection(
File "/usr/lib64/python3.8/socket.py", line 808, in create_connection
raise err
File "/usr/lib64/python3.8/socket.py", line 796, in create_connection
sock.connect(sa)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/boto/utils.py", line 217, in retry_url
r = opener.open(req, timeout=timeout)
File "/usr/lib64/python3.8/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/usr/lib64/python3.8/urllib/request.py", line 542, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "/usr/lib64/python3.8/urllib/request.py", line 502, in _call_chain
result = func(*args)
File "/usr/lib64/python3.8/urllib/request.py", line 1383, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "/usr/lib64/python3.8/urllib/request.py", line 1357, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error timed out>
ERROR boto:utils.py:236 Unable to read instance data, giving up
_______________________________________________________________________ test_boto_medium_difficulty ________________________________________________________________________
tmpdir = local('/tmp/pytest-of-tkloczko/pytest-203/test_boto_medium_difficulty0')
def test_boto_medium_difficulty(tmpdir):
> s3_conn = S3Connection()
tests/integration/test_boto.py:34:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/site-packages/boto/s3/connection.py:188: in __init__
super(S3Connection, self).__init__(host,
/usr/lib/python3.8/site-packages/boto/connection.py:568: in __init__
self._auth_handler = auth.get_auth_handler(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
host = 's3.amazonaws.com', config = <boto.pyami.config.Config object at 0x7f8533abbb50>, provider = <boto.provider.Provider object at 0x7f8532539a90>
requested_capability = ['s3']
def get_auth_handler(host, config, provider, requested_capability=None):
"""Finds an AuthHandler that is ready to authenticate.
Lists through all the registered AuthHandlers to find one that is willing
to handle for the requested capabilities, config and provider.
:type host: string
:param host: The name of the host
:type config:
:param config:
:type provider:
:param provider:
Returns:
An implementation of AuthHandler.
Raises:
boto.exception.NoAuthHandlerFound
"""
ready_handlers = []
auth_handlers = boto.plugin.get_plugin(AuthHandler, requested_capability)
for handler in auth_handlers:
try:
ready_handlers.append(handler(host, config, provider))
except boto.auth_handler.NotReadyToAuthenticate:
pass
if not ready_handlers:
checked_handlers = auth_handlers
names = [handler.__name__ for handler in checked_handlers]
> raise boto.exception.NoAuthHandlerFound(
'No handler was ready to authenticate. %d handlers were checked.'
' %s '
'Check your credentials' % (len(names), str(names)))
E boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] Check your credentials
/usr/lib/python3.8/site-packages/boto/auth.py:1018: NoAuthHandlerFound
---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
ERROR boto:utils.py:230 Caught exception reading instance data
Traceback (most recent call last):
File "/usr/lib64/python3.8/urllib/request.py", line 1354, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File "/usr/lib64/python3.8/http/client.py", line 1256, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1302, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1251, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1011, in _send_output
self.send(msg)
File "/usr/lib64/python3.8/http/client.py", line 951, in send
self.connect()
File "/usr/lib64/python3.8/http/client.py", line 922, in connect
self.sock = self._create_connection(
File "/usr/lib64/python3.8/socket.py", line 808, in create_connection
raise err
File "/usr/lib64/python3.8/socket.py", line 796, in create_connection
sock.connect(sa)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/boto/utils.py", line 217, in retry_url
r = opener.open(req, timeout=timeout)
File "/usr/lib64/python3.8/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/usr/lib64/python3.8/urllib/request.py", line 542, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "/usr/lib64/python3.8/urllib/request.py", line 502, in _call_chain
result = func(*args)
File "/usr/lib64/python3.8/urllib/request.py", line 1383, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "/usr/lib64/python3.8/urllib/request.py", line 1357, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error timed out>
ERROR boto:utils.py:236 Unable to read instance data, giving up
_________________________________________________________________________ test_boto_hardcore_mode __________________________________________________________________________
tmpdir = local('/tmp/pytest-of-tkloczko/pytest-203/test_boto_hardcore_mode0')
def test_boto_hardcore_mode(tmpdir):
with vcr.use_cassette(str(tmpdir.join("boto-hardcore.yml"))):
> s3_conn = S3Connection()
tests/integration/test_boto.py:49:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/site-packages/boto/s3/connection.py:188: in __init__
super(S3Connection, self).__init__(host,
/usr/lib/python3.8/site-packages/boto/connection.py:568: in __init__
self._auth_handler = auth.get_auth_handler(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
host = 's3.amazonaws.com', config = <boto.pyami.config.Config object at 0x7f8533abbb50>, provider = <boto.provider.Provider object at 0x7f8532595b20>
requested_capability = ['s3']
def get_auth_handler(host, config, provider, requested_capability=None):
"""Finds an AuthHandler that is ready to authenticate.
Lists through all the registered AuthHandlers to find one that is willing
to handle for the requested capabilities, config and provider.
:type host: string
:param host: The name of the host
:type config:
:param config:
:type provider:
:param provider:
Returns:
An implementation of AuthHandler.
Raises:
boto.exception.NoAuthHandlerFound
"""
ready_handlers = []
auth_handlers = boto.plugin.get_plugin(AuthHandler, requested_capability)
for handler in auth_handlers:
try:
ready_handlers.append(handler(host, config, provider))
except boto.auth_handler.NotReadyToAuthenticate:
pass
if not ready_handlers:
checked_handlers = auth_handlers
names = [handler.__name__ for handler in checked_handlers]
> raise boto.exception.NoAuthHandlerFound(
'No handler was ready to authenticate. %d handlers were checked.'
' %s '
'Check your credentials' % (len(names), str(names)))
E boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] Check your credentials
/usr/lib/python3.8/site-packages/boto/auth.py:1018: NoAuthHandlerFound
---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
ERROR boto:utils.py:230 Caught exception reading instance data
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/boto/utils.py", line 217, in retry_url
r = opener.open(req, timeout=timeout)
File "/usr/lib64/python3.8/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/usr/lib64/python3.8/urllib/request.py", line 542, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "/usr/lib64/python3.8/urllib/request.py", line 502, in _call_chain
result = func(*args)
File "/usr/lib64/python3.8/urllib/request.py", line 1383, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "/usr/lib64/python3.8/urllib/request.py", line 1358, in do_open
r = h.getresponse()
File "/home/tkloczko/rpmbuild/BUILDROOT/python-vcrpy-4.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/vcr/stubs/__init__.py", line 244, in getresponse
self.real_connection.request(
File "/usr/lib64/python3.8/http/client.py", line 1256, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1302, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1251, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1011, in _send_output
self.send(msg)
File "/usr/lib64/python3.8/http/client.py", line 951, in send
self.connect()
File "/usr/lib64/python3.8/http/client.py", line 922, in connect
self.sock = self._create_connection(
File "/usr/lib64/python3.8/socket.py", line 808, in create_connection
raise err
File "/usr/lib64/python3.8/socket.py", line 796, in create_connection
sock.connect(sa)
socket.timeout: timed out
ERROR boto:utils.py:236 Unable to read instance data, giving up
______________________________________________________________________________ test_boto_iam _______________________________________________________________________________
tmpdir = local('/tmp/pytest-of-tkloczko/pytest-203/test_boto_iam0')
def test_boto_iam(tmpdir):
try:
boto.config.add_section("Boto")
except DuplicateSectionError:
pass
# Ensure that boto uses HTTPS
boto.config.set("Boto", "is_secure", "true")
# Ensure that boto uses CertValidatingHTTPSConnection
boto.config.set("Boto", "https_validate_certificates", "true")
with vcr.use_cassette(str(tmpdir.join("boto-iam.yml"))):
> iam_conn = boto.iam.connect_to_region("universal")
tests/integration/test_boto.py:74:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/site-packages/boto/iam/__init__.py:90: in connect_to_region
return region.connect(**kw_params)
/usr/lib/python3.8/site-packages/boto/iam/__init__.py:44: in connect
return self.connection_cls(host=self.endpoint, **kw_params)
/usr/lib/python3.8/site-packages/boto/iam/connection.py:66: in __init__
super(IAMConnection, self).__init__(aws_access_key_id,
/usr/lib/python3.8/site-packages/boto/connection.py:1091: in __init__
super(AWSQueryConnection, self).__init__(
/usr/lib/python3.8/site-packages/boto/connection.py:568: in __init__
self._auth_handler = auth.get_auth_handler(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
host = 'iam.amazonaws.com', config = <boto.pyami.config.Config object at 0x7f8533abbb50>, provider = <boto.provider.Provider object at 0x7f85323f36d0>
requested_capability = ['hmac-v4']
def get_auth_handler(host, config, provider, requested_capability=None):
"""Finds an AuthHandler that is ready to authenticate.
Lists through all the registered AuthHandlers to find one that is willing
to handle for the requested capabilities, config and provider.
:type host: string
:param host: The name of the host
:type config:
:param config:
:type provider:
:param provider:
Returns:
An implementation of AuthHandler.
Raises:
boto.exception.NoAuthHandlerFound
"""
ready_handlers = []
auth_handlers = boto.plugin.get_plugin(AuthHandler, requested_capability)
for handler in auth_handlers:
try:
ready_handlers.append(handler(host, config, provider))
except boto.auth_handler.NotReadyToAuthenticate:
pass
if not ready_handlers:
checked_handlers = auth_handlers
names = [handler.__name__ for handler in checked_handlers]
> raise boto.exception.NoAuthHandlerFound(
'No handler was ready to authenticate. %d handlers were checked.'
' %s '
'Check your credentials' % (len(names), str(names)))
E boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV4Handler'] Check your credentials
/usr/lib/python3.8/site-packages/boto/auth.py:1018: NoAuthHandlerFound
---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
ERROR boto:utils.py:230 Caught exception reading instance data
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/boto/utils.py", line 217, in retry_url
r = opener.open(req, timeout=timeout)
File "/usr/lib64/python3.8/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/usr/lib64/python3.8/urllib/request.py", line 542, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "/usr/lib64/python3.8/urllib/request.py", line 502, in _call_chain
result = func(*args)
File "/usr/lib64/python3.8/urllib/request.py", line 1383, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "/usr/lib64/python3.8/urllib/request.py", line 1358, in do_open
r = h.getresponse()
File "/home/tkloczko/rpmbuild/BUILDROOT/python-vcrpy-4.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/vcr/stubs/__init__.py", line 244, in getresponse
self.real_connection.request(
File "/usr/lib64/python3.8/http/client.py", line 1256, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1302, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1251, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib64/python3.8/http/client.py", line 1011, in _send_output
self.send(msg)
File "/usr/lib64/python3.8/http/client.py", line 951, in send
self.connect()
File "/usr/lib64/python3.8/http/client.py", line 922, in connect
self.sock = self._create_connection(
File "/usr/lib64/python3.8/socket.py", line 808, in create_connection
raise err
File "/usr/lib64/python3.8/socket.py", line 796, in create_connection
sock.connect(sa)
socket.timeout: timed out
ERROR boto:utils.py:236 Unable to read instance data, giving up
_________________________________________________________________________ test_status_code[https] __________________________________________________________________________
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7f853243ac70>, method = 'GET', url = '/', body = None
headers = {'User-Agent': 'python-requests/2.28.0', 'Accept-Encoding': 'gzip, deflate, br', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False
timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None, release_conn = False, chunked = False, body_pos = None
response_kw = {'decode_content': False, 'preload_content': False}, parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True, http_tunnel_required = False, err = None, clean_exit = False
def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.
.. note::
More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.
.. note::
`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.
:param method:
HTTP request method (such as GET, POST, PUT, etc.)
:param url:
The URL to perform the request on.
:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.
:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.
:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.
Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.
If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.
:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.
:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.
:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.
:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.
:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.
:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.
:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.
:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""
parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme
if headers is None:
headers = self.headers
if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
if release_conn is None:
release_conn = response_kw.get("preload_content", True)
# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)
# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)
conn = None
# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn
http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)
# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)
# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None
# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False
# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)
try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)
conn.timeout = timeout_obj.connect_timeout
is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)
# Make the request on the httplib connection object.
> httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)
/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7f853243ac70>
conn = <vcr.patch.VCRRequestsHTTPSConnection/tmp/pytest-of-tkloczko/pytest-203/test_status_code_https_0/atts.yaml object at 0x7f85325b21f0>, method = 'GET', url = '/'
timeout = Timeout(connect=None, read=None, total=None), chunked = False
httplib_request_kw = {'body': None, 'headers': {'User-Agent': 'python-requests/2.28.0', 'Accept-Encoding': 'gzip, deflate, br', 'Accept': '*/*', 'Connection': 'keep-alive'}}
timeout_obj = Timeout(connect=None, read=None, total=None)
def _make_request(
self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw
):
"""
Perform a request on a given urllib connection object taken from our
pool.
:param conn:
a connection from one of our connection pools
:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.
"""
self.num_requests += 1
timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = timeout_obj.connect_timeout
# Trigger any extra validation we need to do.
try:
> self._validate_conn(conn)
/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:386:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7f853243ac70>
conn = <vcr.patch.VCRRequestsHTTPSConnection/tmp/pytest-of-tkloczko/pytest-203/test_status_code_https_0/atts.yaml object at 0x7f85325b21f0>
def _validate_conn(self, conn):
"""
Called right before a request is made, after the socket is created.
"""
super(HTTPSConnectionPool, self)._validate_conn(conn)
# Force connect early to allow us to validate the connection.
if not getattr(conn, "sock", None): # AppEngine might not have `.sock`
> conn.connect()
/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:1040:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <vcr.patch.VCRRequestsHTTPSConnection/tmp/pytest-of-tkloczko/pytest-203/test_status_code_https_0/atts.yaml object at 0x7f85325b21f0>, args = (), kwargs = {}
force_reset = <function force_reset at 0x7f85338713a0>
def connect(self, *args, **kwargs):
"""
httplib2 uses this. Connects to the server I'm assuming.
Only pass to the baseclass if we don't have a recorded response
and are not write-protected.
"""
if hasattr(self, "_vcr_request") and self.cassette.can_play_response_for(self._vcr_request):
# We already have a response we are going to play, don't
# actually connect
return
if self.cassette.write_protected:
# Cassette is write-protected, don't actually connect
return
from vcr.patch import force_reset
with force_reset():
> return self.real_connection.connect(*args, **kwargs)
../../BUILDROOT/python-vcrpy-4.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/vcr/stubs/__init__.py:286:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <urllib3.connection.HTTPSConnection object at 0x7f85325b2d90>
def connect(self):
# Add certificate verification
self.sock = conn = self._new_conn()
hostname = self.host
tls_in_tls = False
if self._is_using_tunnel():
if self.tls_in_tls_required:
self.sock = conn = self._connect_tls_proxy(hostname, conn)
tls_in_tls = True
# Calls self._set_hostport(), so self.host is
# self._tunnel_host below.
self._tunnel()
# Mark this connection as not reusable
self.auto_open = 0
# Override the host with the one we're requesting data from.
hostname = self._tunnel_host
server_hostname = hostname
if self.server_hostname is not None:
server_hostname = self.server_hostname
is_time_off = datetime.date.today() < RECENT_DATE
if is_time_off:
warnings.warn(
(
"System time is way off (before {0}). This will probably "
"lead to SSL verification errors"
).format(RECENT_DATE),
SystemTimeWarning,
)
# Wrap socket using verification with the root certs in
# trusted_root_certs
default_ssl_context = False
if self.ssl_context is None:
default_ssl_context = True
self.ssl_context = create_urllib3_context(
ssl_version=resolve_ssl_version(self.ssl_version),
cert_reqs=resolve_cert_reqs(self.cert_reqs),
)
context = self.ssl_context
context.verify_mode = resolve_cert_reqs(self.cert_reqs)
# Try to load OS default certs if none are given.
# Works well on Windows (requires Python3.4+)
if (
not self.ca_certs
and not self.ca_cert_dir
and not self.ca_cert_data
and default_ssl_context
and hasattr(context, "load_default_certs")
):
context.load_default_certs()
> self.sock = ssl_wrap_socket(
sock=conn,
keyfile=self.key_file,
certfile=self.cert_file,
key_password=self.key_password,
ca_certs=self.ca_certs,
ca_cert_dir=self.ca_cert_dir,
ca_cert_data=self.ca_cert_data,
server_hostname=server_hostname,
ssl_context=context,
tls_in_tls=tls_in_tls,
)
/usr/lib/python3.8/site-packages/urllib3/connection.py:414:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
sock = <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>, keyfile = None, certfile = None, cert_reqs = None
ca_certs = '/etc/pki/tls/certs/ca-bundle.crt', server_hostname = '127.0.0.1', ssl_version = None, ciphers = None, ssl_context = <ssl.SSLContext object at 0x7f853259c3c0>
ca_cert_dir = None, key_password = None, ca_cert_data = None, tls_in_tls = False
def ssl_wrap_socket(
sock,
keyfile=None,
certfile=None,
cert_reqs=None,
ca_certs=None,
server_hostname=None,
ssl_version=None,
ciphers=None,
ssl_context=None,
ca_cert_dir=None,
key_password=None,
ca_cert_data=None,
tls_in_tls=False,
):
"""
All arguments except for server_hostname, ssl_context, and ca_cert_dir have
the same meaning as they do when using :func:`ssl.wrap_socket`.
:param server_hostname:
When SNI is supported, the expected hostname of the certificate
:param ssl_context:
A pre-made :class:`SSLContext` object. If none is provided, one will
be created using :func:`create_urllib3_context`.
:param ciphers:
A string of ciphers we wish the client to support.
:param ca_cert_dir:
A directory containing CA certificates in multiple separate files, as
supported by OpenSSL's -CApath flag or the capath argument to
SSLContext.load_verify_locations().
:param key_password:
Optional password if the keyfile is encrypted.
:param ca_cert_data:
Optional string containing CA certificates in PEM format suitable for
passing as the cadata parameter to SSLContext.load_verify_locations()
:param tls_in_tls:
Use SSLTransport to wrap the existing socket.
"""
context = ssl_context
if context is None:
# Note: This branch of code and all the variables in it are no longer
# used by urllib3 itself. We should consider deprecating and removing
# this code.
context = create_urllib3_context(ssl_version, cert_reqs, ciphers=ciphers)
if ca_certs or ca_cert_dir or ca_cert_data:
try:
context.load_verify_locations(ca_certs, ca_cert_dir, ca_cert_data)
except (IOError, OSError) as e:
raise SSLError(e)
elif ssl_context is None and hasattr(context, "load_default_certs"):
# try to load OS default certs; works well on Windows (require Python3.4+)
context.load_default_certs()
# Attempt to detect if we get the goofy behavior of the
# keyfile being encrypted and OpenSSL asking for the
# passphrase via the terminal and instead error out.
if keyfile and key_password is None and _is_key_file_encrypted(keyfile):
raise SSLError("Client private key is encrypted, password is required")
if certfile:
if key_password is None:
context.load_cert_chain(certfile, keyfile)
else:
context.load_cert_chain(certfile, keyfile, key_password)
try:
if hasattr(context, "set_alpn_protocols"):
context.set_alpn_protocols(ALPN_PROTOCOLS)
except NotImplementedError: # Defensive: in CI, we always have set_alpn_protocols
pass
# If we detect server_hostname is an IP address then the SNI
# extension should not be used according to RFC3546 Section 3.1
use_sni_hostname = server_hostname and not is_ipaddress(server_hostname)
# SecureTransport uses server_hostname in certificate verification.
send_sni = (use_sni_hostname and HAS_SNI) or (
IS_SECURETRANSPORT and server_hostname
)
# Do not warn the user if server_hostname is an invalid SNI hostname.
if not HAS_SNI and use_sni_hostname:
warnings.warn(
"An HTTPS request has been made, but the SNI (Server Name "
"Indication) extension to TLS is not available on this platform. "
"This may cause the server to present an incorrect TLS "
"certificate, which can cause validation failures. You can upgrade to "
"a newer version of Python to solve this. For more information, see "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#ssl-warnings",
SNIMissingWarning,
)
if send_sni:
ssl_sock = _ssl_wrap_socket_impl(
sock, context, tls_in_tls, server_hostname=server_hostname
)
else:
> ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls)
/usr/lib/python3.8/site-packages/urllib3/util/ssl_.py:453:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
sock = <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>, ssl_context = <ssl.SSLContext object at 0x7f853259c3c0>
tls_in_tls = False, server_hostname = None
def _ssl_wrap_socket_impl(sock, ssl_context, tls_in_tls, server_hostname=None):
if tls_in_tls:
if not SSLTransport:
# Import error, ssl is not available.
raise ProxySchemeUnsupported(
"TLS in TLS requires support for the 'ssl' module"
)
SSLTransport._validate_ssl_context_for_tls_in_tls(ssl_context)
return SSLTransport(sock, ssl_context, server_hostname)
if server_hostname:
return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
else:
> return ssl_context.wrap_socket(sock)
/usr/lib/python3.8/site-packages/urllib3/util/ssl_.py:495:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <ssl.SSLContext object at 0x7f853259c3c0>, sock = <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>
server_side = False, do_handshake_on_connect = True, suppress_ragged_eofs = True, server_hostname = None, session = None
def wrap_socket(self, sock, server_side=False,
do_handshake_on_connect=True,
suppress_ragged_eofs=True,
server_hostname=None, session=None):
# SSLSocket class handles server_hostname encoding before it calls
# ctx._wrap_socket()
> return self.sslsocket_class._create(
sock=sock,
server_side=server_side,
do_handshake_on_connect=do_handshake_on_connect,
suppress_ragged_eofs=suppress_ragged_eofs,
server_hostname=server_hostname,
context=self,
session=session
)
/usr/lib64/python3.8/ssl.py:500:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls = <class 'ssl.SSLSocket'>, sock = <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>, server_side = False
do_handshake_on_connect = True, suppress_ragged_eofs = True, server_hostname = None, context = <ssl.SSLContext object at 0x7f853259c3c0>, session = None
@classmethod
def _create(cls, sock, server_side=False, do_handshake_on_connect=True,
suppress_ragged_eofs=True, server_hostname=None,
context=None, session=None):
if sock.getsockopt(SOL_SOCKET, SO_TYPE) != SOCK_STREAM:
raise NotImplementedError("only stream sockets are supported")
if server_side:
if server_hostname:
raise ValueError("server_hostname can only be specified "
"in client mode")
if session is not None:
raise ValueError("session can only be specified in "
"client mode")
if context.check_hostname and not server_hostname:
raise ValueError("check_hostname requires server_hostname")
kwargs = dict(
family=sock.family, type=sock.type, proto=sock.proto,
fileno=sock.fileno()
)
self = cls.__new__(cls, **kwargs)
super(SSLSocket, self).__init__(**kwargs)
self.settimeout(sock.gettimeout())
sock.detach()
self._context = context
self._session = session
self._closed = False
self._sslobj = None
self.server_side = server_side
self.server_hostname = context._encode_hostname(server_hostname)
self.do_handshake_on_connect = do_handshake_on_connect
self.suppress_ragged_eofs = suppress_ragged_eofs
# See if we are connected
try:
self.getpeername()
except OSError as e:
if e.errno != errno.ENOTCONN:
raise
connected = False
else:
connected = True
self._connected = connected
if connected:
# create the SSL object
try:
self._sslobj = self._context._wrap_socket(
self, server_side, self.server_hostname,
owner=self, session=self._session,
)
if do_handshake_on_connect:
timeout = self.gettimeout()
if timeout == 0.0:
# non-blocking
raise ValueError("do_handshake_on_connect should not be specified for non-blocking sockets")
> self.do_handshake()
/usr/lib64/python3.8/ssl.py:1040:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[..]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
sock = <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>, ssl_context = <ssl.SSLContext object at 0x7f85318f9340>
tls_in_tls = False, server_hostname = None
def _ssl_wrap_socket_impl(sock, ssl_context, tls_in_tls, server_hostname=None):
if tls_in_tls:
if not SSLTransport:
# Import error, ssl is not available.
raise ProxySchemeUnsupported(
"TLS in TLS requires support for the 'ssl' module"
)
SSLTransport._validate_ssl_context_for_tls_in_tls(ssl_context)
return SSLTransport(sock, ssl_context, server_hostname)
if server_hostname:
return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
else:
> return ssl_context.wrap_socket(sock)
/usr/lib/python3.8/site-packages/urllib3/util/ssl_.py:495:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <ssl.SSLContext object at 0x7f85318f9340>, sock = <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>
server_side = False, do_handshake_on_connect = True, suppress_ragged_eofs = True, server_hostname = None, session = None
def wrap_socket(self, sock, server_side=False,
do_handshake_on_connect=True,
suppress_ragged_eofs=True,
server_hostname=None, session=None):
# SSLSocket class handles server_hostname encoding before it calls
# ctx._wrap_socket()
> return self.sslsocket_class._create(
sock=sock,
server_side=server_side,
do_handshake_on_connect=do_handshake_on_connect,
suppress_ragged_eofs=suppress_ragged_eofs,
server_hostname=server_hostname,
context=self,
session=session
)
/usr/lib64/python3.8/ssl.py:500:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls = <class 'ssl.SSLSocket'>, sock = <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>, server_side = False
do_handshake_on_connect = True, suppress_ragged_eofs = True, server_hostname = None, context = <ssl.SSLContext object at 0x7f85318f9340>, session = None
@classmethod
def _create(cls, sock, server_side=False, do_handshake_on_connect=True,
suppress_ragged_eofs=True, server_hostname=None,
context=None, session=None):
if sock.getsockopt(SOL_SOCKET, SO_TYPE) != SOCK_STREAM:
raise NotImplementedError("only stream sockets are supported")
if server_side:
if server_hostname:
raise ValueError("server_hostname can only be specified "
"in client mode")
if session is not None:
raise ValueError("session can only be specified in "
"client mode")
if context.check_hostname and not server_hostname:
raise ValueError("check_hostname requires server_hostname")
kwargs = dict(
family=sock.family, type=sock.type, proto=sock.proto,
fileno=sock.fileno()
)
self = cls.__new__(cls, **kwargs)
super(SSLSocket, self).__init__(**kwargs)
self.settimeout(sock.gettimeout())
sock.detach()
self._context = context
self._session = session
self._closed = False
self._sslobj = None
self.server_side = server_side
self.server_hostname = context._encode_hostname(server_hostname)
self.do_handshake_on_connect = do_handshake_on_connect
self.suppress_ragged_eofs = suppress_ragged_eofs
# See if we are connected
try:
self.getpeername()
except OSError as e:
if e.errno != errno.ENOTCONN:
raise
connected = False
else:
connected = True
self._connected = connected
if connected:
# create the SSL object
try:
self._sslobj = self._context._wrap_socket(
self, server_side, self.server_hostname,
owner=self, session=self._session,
)
if do_handshake_on_connect:
timeout = self.gettimeout()
if timeout == 0.0:
# non-blocking
raise ValueError("do_handshake_on_connect should not be specified for non-blocking sockets")
> self.do_handshake()
/usr/lib64/python3.8/ssl.py:1040:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>, block = False
@_sslcopydoc
def do_handshake(self, block=False):
self._check_connected()
timeout = self.gettimeout()
try:
if timeout == 0.0 and block:
self.settimeout(None)
> self._sslobj.do_handshake()
E ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)
/usr/lib64/python3.8/ssl.py:1309: SSLCertVerificationError
During handling of the above exception, another exception occurred:
self = <requests.adapters.HTTPAdapter object at 0x7f8531a6d340>, request = <PreparedRequest [GET]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()
def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.
:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""
try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)
self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)
chunked = not (request.body is None or "Content-Length" in request.headers)
if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)
try:
if not chunked:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)
/usr/lib/python3.8/site-packages/requests/adapters.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7f8531a6d790>, method = 'GET', url = '/', body = None
headers = {'User-Agent': 'python-requests/2.28.0', 'Accept-Encoding': 'gzip, deflate, br', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False
timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None, release_conn = False, chunked = False, body_pos = None
response_kw = {'decode_content': False, 'preload_content': False}, parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True, http_tunnel_required = False, err = None, clean_exit = False
def urlopen(
self,
method,
url,
body=None,
headers=None,
retries=None,
redirect=True,
assert_same_host=True,
timeout=_Default,
pool_timeout=None,
release_conn=None,
chunked=False,
body_pos=None,
**response_kw
):
"""
Get a connection from the pool and perform an HTTP request. This is the
lowest level call for making a request, so you'll need to specify all
the raw details.
.. note::
More commonly, it's appropriate to use a convenience method provided
by :class:`.RequestMethods`, such as :meth:`request`.
.. note::
`release_conn` will only behave as expected if
`preload_content=False` because we want to make
`preload_content=False` the default behaviour someday soon without
breaking backwards compatibility.
:param method:
HTTP request method (such as GET, POST, PUT, etc.)
:param url:
The URL to perform the request on.
:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.
:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.
:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.
Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.
If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.
:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
:param redirect:
If True, automatically handle redirects (status codes 301, 302,
303, 307, 308). Each redirect counts as a retry. Disabling retries
will disable redirect, too.
:param assert_same_host:
If ``True``, will make sure that the host of the pool requests is
consistent else will raise HostChangedError. When ``False``, you can
use the pool on an HTTP proxy and request foreign hosts.
:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.
:param pool_timeout:
If set and the pool is set to block=True, then this method will
block for ``pool_timeout`` seconds and raise EmptyPoolError if no
connection is available within the time period.
:param release_conn:
If False, then the urlopen call will not release the connection
back into the pool once a response is received (but will release if
you read the entire contents of the response such as when
`preload_content=True`). This is useful if you're not preloading
the response's content immediately. You will need to call
``r.release_conn()`` on the response ``r`` to return the connection
back into the pool. If None, it takes the value of
``response_kw.get('preload_content', True)``.
:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.
:param int body_pos:
Position to seek to in file-like body in the event of a retry or
redirect. Typically this won't need to be set because urllib3 will
auto-populate the value when needed.
:param \\**response_kw:
Additional parameters are passed to
:meth:`urllib3.response.HTTPResponse.from_httplib`
"""
parsed_url = parse_url(url)
destination_scheme = parsed_url.scheme
if headers is None:
headers = self.headers
if not isinstance(retries, Retry):
retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
if release_conn is None:
release_conn = response_kw.get("preload_content", True)
# Check host
if assert_same_host and not self.is_same_host(url):
raise HostChangedError(self, url, retries)
# Ensure that the URL we're connecting to is properly encoded
if url.startswith("/"):
url = six.ensure_str(_encode_target(url))
else:
url = six.ensure_str(parsed_url.url)
conn = None
# Track whether `conn` needs to be released before
# returning/raising/recursing. Update this variable if necessary, and
# leave `release_conn` constant throughout the function. That way, if
# the function recurses, the original value of `release_conn` will be
# passed down into the recursive call, and its value will be respected.
#
# See issue #651 [1] for details.
#
# [1] <https://github.com/urllib3/urllib3/issues/651>
release_this_conn = release_conn
http_tunnel_required = connection_requires_http_tunnel(
self.proxy, self.proxy_config, destination_scheme
)
# Merge the proxy headers. Only done when not using HTTP CONNECT. We
# have to copy the headers dict so we can safely change it without those
# changes being reflected in anyone else's copy.
if not http_tunnel_required:
headers = headers.copy()
headers.update(self.proxy_headers)
# Must keep the exception bound to a separate variable or else Python 3
# complains about UnboundLocalError.
err = None
# Keep track of whether we cleanly exited the except block. This
# ensures we do proper cleanup in finally.
clean_exit = False
# Rewind body position, if needed. Record current position
# for future rewinds in the event of a redirect/retry.
body_pos = set_file_position(body, body_pos)
try:
# Request a connection from the queue.
timeout_obj = self._get_timeout(timeout)
conn = self._get_conn(timeout=pool_timeout)
conn.timeout = timeout_obj.connect_timeout
is_new_proxy_conn = self.proxy is not None and not getattr(
conn, "sock", None
)
if is_new_proxy_conn and http_tunnel_required:
self._prepare_proxy(conn)
# Make the request on the httplib connection object.
httplib_response = self._make_request(
conn,
method,
url,
timeout=timeout_obj,
body=body,
headers=headers,
chunked=chunked,
)
# If we're going to release the connection in ``finally:``, then
# the response doesn't need to know about the connection. Otherwise
# it will also try to release it and we'll have a double-release
# mess.
response_conn = conn if not release_conn else None
# Pass method to Response for length checking
response_kw["request_method"] = method
# Import httplib's response into our own wrapper object
response = self.ResponseCls.from_httplib(
httplib_response,
pool=self,
connection=response_conn,
retries=retries,
**response_kw
)
# Everything went great!
clean_exit = True
except EmptyPoolError:
# Didn't get a connection from the pool, no need to clean up
clean_exit = True
release_this_conn = False
raise
except (
TimeoutError,
HTTPException,
SocketError,
ProtocolError,
BaseSSLError,
SSLError,
CertificateError,
) as e:
# Discard the connection for these exceptions. It will be
# replaced during the next _get_conn() call.
clean_exit = False
def _is_ssl_error_message_from_http_proxy(ssl_error):
# We're trying to detect the message 'WRONG_VERSION_NUMBER' but
# SSLErrors are kinda all over the place when it comes to the message,
# so we try to cover our bases here!
message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
return (
"wrong version number" in message or "unknown protocol" in message
)
# Try to detect a common user error with proxies which is to
# set an HTTP proxy to be HTTPS when it should be 'http://'
# (ie {'http': 'http://proxy', 'https': 'https://proxy'})
# Instead we add a nice error message and point to a URL.
if (
isinstance(e, BaseSSLError)
and self.proxy
and _is_ssl_error_message_from_http_proxy(e)
):
e = ProxyError(
"Your proxy appears to only use HTTP and not HTTPS, "
"try changing your proxy URL to be HTTP. See: "
"https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
"#https-proxy-error-http-proxy",
SSLError(e),
)
elif isinstance(e, (BaseSSLError, CertificateError)):
e = SSLError(e)
elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
e = ProxyError("Cannot connect to proxy.", e)
elif isinstance(e, (SocketError, HTTPException)):
e = ProtocolError("Connection aborted.", e)
> retries = retries.increment(
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
)
/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:785:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'GET', url = '/', response = None
error = SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)'))
_pool = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7f8531a6d790>, _stacktrace = <traceback object at 0x7f8531849680>
def increment(
self,
method=None,
url=None,
response=None,
error=None,
_pool=None,
_stacktrace=None,
):
"""Return a new Retry object with incremented retry counters.
:param response: A response object, or None, if the server did not
return a response.
:type response: :class:`~urllib3.response.HTTPResponse`
:param Exception error: An error encountered during the request, or
None if the response was received successfully.
:return: A new ``Retry`` object.
"""
if self.total is False and error:
# Disabled, indicate to re-raise the error.
raise six.reraise(type(error), error, _stacktrace)
total = self.total
if total is not None:
total -= 1
connect = self.connect
read = self.read
redirect = self.redirect
status_count = self.status
other = self.other
cause = "unknown"
status = None
redirect_location = None
if error and self._is_connection_error(error):
# Connect retry?
if connect is False:
raise six.reraise(type(error), error, _stacktrace)
elif connect is not None:
connect -= 1
elif error and self._is_read_error(error):
# Read retry?
if read is False or not self._is_method_retryable(method):
raise six.reraise(type(error), error, _stacktrace)
elif read is not None:
read -= 1
elif error:
# Other retry?
if other is not None:
other -= 1
elif response and response.get_redirect_location():
# Redirect retry?
if redirect is not None:
redirect -= 1
cause = "too many redirects"
redirect_location = response.get_redirect_location()
status = response.status
else:
# Incrementing because of a server error like a 500 in
# status_forcelist and the given method is in the allowed_methods
cause = ResponseError.GENERIC_ERROR
if response and response.status:
if status_count is not None:
status_count -= 1
cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
status = response.status
history = self.history + (
RequestHistory(method, url, error, status, redirect_location),
)
new_retry = self.new(
total=total,
connect=connect,
read=read,
redirect=redirect,
status=status_count,
other=other,
history=history,
)
if new_retry.is_exhausted():
> raise MaxRetryError(_pool, url, error or ResponseError(cause))
E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)')))
/usr/lib/python3.8/site-packages/urllib3/util/retry.py:592: MaxRetryError
During handling of the above exception, another exception occurred:
tmpdir = local('/tmp/pytest-of-tkloczko/pytest-203/test_cross_scheme1'), httpbin_secure = <pytest_httpbin.serve.SecureServer object at 0x7f8533058460>
httpbin = <pytest_httpbin.serve.Server object at 0x7f8532f7ed30>
def test_cross_scheme(tmpdir, httpbin_secure, httpbin):
"""Ensure that requests between schemes are treated separately"""
# First fetch a url under http, and then again under https and then
# ensure that we haven't served anything out of cache, and we have two
# requests / response pairs in the cassette
with vcr.use_cassette(str(tmpdir.join("cross_scheme.yaml"))) as cass:
> requests.get(httpbin_secure + "/")
tests/integration/test_requests.py:152:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/site-packages/requests/api.py:73: in get
return request("get", url, params=params, **kwargs)
/usr/lib/python3.8/site-packages/requests/api.py:59: in request
return session.request(method=method, url=url, **kwargs)
/usr/lib/python3.8/site-packages/requests/sessions.py:587: in request
resp = self.send(prep, **send_kwargs)
/usr/lib/python3.8/site-packages/requests/sessions.py:701: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <requests.adapters.HTTPAdapter object at 0x7f8531a6d340>, request = <PreparedRequest [GET]>, stream = False, timeout = Timeout(connect=None, read=None, total=None)
verify = True, cert = None, proxies = OrderedDict()
def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.
:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""
try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)
self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)
chunked = not (request.body is None or "Content-Length" in request.headers)
if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)
try:
if not chunked:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
)
# Send the request.
else:
if hasattr(conn, "proxy_pool"):
conn = conn.proxy_pool
low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)
try:
skip_host = "Host" in request.headers
low_conn.putrequest(
request.method,
url,
skip_accept_encoding=True,
skip_host=skip_host,
)
for header, value in request.headers.items():
low_conn.putheader(header, value)
low_conn.endheaders()
for i in request.body:
low_conn.send(hex(len(i))[2:].encode("utf-8"))
low_conn.send(b"\r\n")
low_conn.send(i)
low_conn.send(b"\r\n")
low_conn.send(b"0\r\n\r\n")
# Receive the response from the server
r = low_conn.getresponse()
resp = HTTPResponse.from_httplib(
r,
pool=conn,
connection=low_conn,
preload_content=False,
decode_content=False,
)
except Exception:
# If we hit any problems here, clean up the connection.
# Then, raise so that we can handle the actual exception.
low_conn.close()
raise
except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)
except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)
if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)
if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)
if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
> raise SSLError(e, request=request)
E requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)')))
/usr/lib/python3.8/site-packages/requests/adapters.py:563: SSLError
============================================================================= warnings summary =============================================================================
../../../../../usr/lib/python3.8/site-packages/pytest_aiohttp/plugin.py:28
/usr/lib/python3.8/site-packages/pytest_aiohttp/plugin.py:28: DeprecationWarning: The 'asyncio_mode' is 'legacy', switching to 'auto' for the sake of pytest-aiohttp backward compatibility. Please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
config.issue_config_time_warning(LEGACY_MODE, stacklevel=2)
../../../../../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_proxy.py:42
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.0/tests/integration/test_proxy.py:42: PytestDeprecationWarning: @pytest.yield_fixture is deprecated.
Use @pytest.fixture instead; they are the same.
@pytest.yield_fixture(scope="session")
tests/integration/test_wild.py:86
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.0/tests/integration/test_wild.py:86: PytestDeprecationWarning: @pytest.yield_fixture is deprecated.
Use @pytest.fixture instead; they are the same.
@pytest.yield_fixture(scope="session")
tests/integration/test_httpx.py: 22 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:116: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
tests/integration/test_httpx.py: 22 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:172: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
tests/integration/test_httpx.py: 22 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:144: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
tests/integration/test_httpx.py: 22 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:191: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
tests/integration/test_httpx.py: 22 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:210: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
tests/integration/test_httpx.py: 22 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:229: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
========================================================================= short test summary info ==========================================================================
SKIPPED [1] tests/integration/test_tornado.py:12: could not import 'tornado': No module named 'tornado'
SKIPPED [1] tests/integration/test_boto3.py:58: botocore version 1.27.17 does not use vendored requests anymore.
SKIPPED [1] tests/integration/test_boto3.py:76: 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:94: 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_requests.py:116: condition: sys.version_info >= (3, 6)
FAILED tests/integration/test_boto.py::test_boto_without_vcr - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAu...
FAILED tests/integration/test_boto.py::test_boto_medium_difficulty - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['...
FAILED tests/integration/test_boto.py::test_boto_hardcore_mode - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['Hmac...
FAILED tests/integration/test_boto.py::test_boto_iam - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV4Hand...
FAILED tests/integration/test_requests.py::test_status_code[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max retries exceede...
FAILED tests/integration/test_requests.py::test_headers[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max retries exceeded wi...
FAILED tests/integration/test_requests.py::test_body[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max retries exceeded with ...
FAILED tests/integration/test_requests.py::test_get_empty_content_type_json[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max...
FAILED tests/integration/test_requests.py::test_effective_url[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max retries excee...
FAILED tests/integration/test_requests.py::test_auth[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max retries exceeded with ...
FAILED tests/integration/test_requests.py::test_auth_failed[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max retries exceede...
FAILED tests/integration/test_requests.py::test_post[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max retries exceeded with ...
FAILED tests/integration/test_requests.py::test_redirects[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max retries exceeded ...
FAILED tests/integration/test_requests.py::test_gzip[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max retries exceeded with ...
FAILED tests/integration/test_requests.py::test_session_created_before_use_cassette_is_patched[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1...
FAILED tests/integration/test_requests.py::test_nested_cassettes_with_session_created_before_nesting[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127...
FAILED tests/integration/test_requests.py::test_post_file[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max retries exceeded ...
FAILED tests/integration/test_requests.py::test_filter_post_params[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max retries ...
FAILED tests/integration/test_requests.py::test_post_unicode_match_on_body[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max ...
FAILED tests/integration/test_requests.py::test_cross_scheme - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=44819): Max retries exceeded with...
========================================================= 20 failed, 366 passed, 5 skipped, 136 warnings in 48.74s ========================================================= As you see there are some warnings about use |
Just tested 4.2.1. ============================================================================= warnings summary =============================================================================
../../../../../usr/lib/python3.8/site-packages/botocore/httpsession.py:41
/usr/lib/python3.8/site-packages/botocore/httpsession.py:41: DeprecationWarning: 'urllib3.contrib.pyopenssl' module is deprecated and will be removed in a future release of urllib3 2.x. Read more in this issue: https://github.com/urllib3/urllib3/issues/2680
from urllib3.contrib.pyopenssl import orig_util_SSLContext as SSLContext
../../../../../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_proxy.py:42
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_proxy.py:42: PytestDeprecationWarning: @pytest.yield_fixture is deprecated.
Use @pytest.fixture instead; they are the same.
@pytest.yield_fixture(scope="session")
tests/integration/test_tornado.py:53
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:53: 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:65
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:65: 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:77
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:77: 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:90
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:90: 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:103
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:103: 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:118
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:118: 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:141
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:141: 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:156
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:156: 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:168
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:168: 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:187
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:187: 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:212
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:212: 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:224
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:224: 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:242
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:242: 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:258
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:258: 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:274
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:274: 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-4.2.1/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:295
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:295: 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:309
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:309: 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:322
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:322: 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:337
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_tornado.py:337: 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:53
tests/integration/test_tornado.py:53: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_status_code will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:65
tests/integration/test_tornado.py:65: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_headers will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:77
tests/integration/test_tornado.py:77: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_body will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:90
tests/integration/test_tornado.py:90: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_effective_url will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:103
tests/integration/test_tornado.py:103: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_auth will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:118
tests/integration/test_tornado.py:118: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_auth_failed will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:141
tests/integration/test_tornado.py:141: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_post will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:156
tests/integration/test_tornado.py:156: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_redirects will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:168
tests/integration/test_tornado.py:168: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_cross_scheme will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:187
tests/integration/test_tornado.py:187: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_gzip will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:212
tests/integration/test_tornado.py:212: 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:224
tests/integration/test_tornado.py:224: 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:241
tests/integration/test_tornado.py:241: 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:258
tests/integration/test_tornado.py:258: 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:273
tests/integration/test_tornado.py:273: 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:288
tests/integration/test_tornado.py:288: 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:295
tests/integration/test_tornado.py:295: 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:309
tests/integration/test_tornado.py:309: 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:322
tests/integration/test_tornado.py:322: 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:337
tests/integration/test_tornado.py:337: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_request_time_is_set will be ignored
@pytest.mark.gen_test
tests/integration/test_wild.py:86
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.2.1/tests/integration/test_wild.py:86: PytestDeprecationWarning: @pytest.yield_fixture is deprecated.
Use @pytest.fixture instead; they are the same.
@pytest.yield_fixture(scope="session")
tests/integration/test_httpx.py: 22 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:116: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
tests/integration/test_httpx.py: 22 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:172: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
tests/integration/test_httpx.py: 22 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:144: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
tests/integration/test_httpx.py: 22 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:191: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
tests/integration/test_httpx.py: 22 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:210: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
tests/integration/test_httpx.py: 22 warnings
/usr/lib/python3.8/site-packages/rfc3986/_mixin.py:229: DeprecationWarning: Please use rfc3986.validators.Validator instead. This method will be eventually removed.
warnings.warn(
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
========================================================================= short test summary info ==========================================================================
SKIPPED [1] tests/integration/test_boto3.py:58: botocore version 1.27.62 does not use vendored requests anymore.
SKIPPED [1] tests/integration/test_boto3.py:76: 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:94: 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_requests.py:116: condition: sys.version_info >= (3, 6)
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
FAILED tests/integration/test_boto.py::test_boto_without_vcr - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAu...
FAILED tests/integration/test_boto.py::test_boto_medium_difficulty - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['...
FAILED tests/integration/test_boto.py::test_boto_hardcore_mode - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['Hmac...
FAILED tests/integration/test_boto.py::test_boto_iam - boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV4Hand...
FAILED tests/integration/test_requests.py::test_status_code[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36041): Max retries exceede...
FAILED tests/integration/test_requests.py::test_headers[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36041): Max retries exceeded wi...
FAILED tests/integration/test_requests.py::test_body[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36041): Max retries exceeded with ...
FAILED tests/integration/test_requests.py::test_get_empty_content_type_json[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36041): Max...
FAILED tests/integration/test_requests.py::test_effective_url[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36041): Max retries excee...
FAILED tests/integration/test_requests.py::test_auth[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36041): Max retries exceeded with ...
FAILED tests/integration/test_requests.py::test_auth_failed[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36041): Max retries exceede...
FAILED tests/integration/test_requests.py::test_post[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36041): Max retries exceeded with ...
FAILED tests/integration/test_requests.py::test_redirects[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36041): Max retries exceeded ...
FAILED tests/integration/test_requests.py::test_gzip[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36041): Max retries exceeded with ...
FAILED tests/integration/test_requests.py::test_session_created_before_use_cassette_is_patched[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1...
FAILED tests/integration/test_requests.py::test_nested_cassettes_with_session_created_before_nesting[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127...
FAILED tests/integration/test_requests.py::test_post_file[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36041): Max retries exceeded ...
FAILED tests/integration/test_requests.py::test_filter_post_params[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36041): Max retries ...
FAILED tests/integration/test_requests.py::test_post_unicode_match_on_body[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36041): Max ...
FAILED tests/integration/test_requests.py::test_cross_scheme - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=36041): Max retries exceeded with...
=================================================== 20 failed, 366 passed, 4 skipped, 20 xfailed, 176 warnings in 46.89s =================================================== Do you have aby idea why those units may be failing? |
gentle ping .. 🤔 |
Summary from testing latest 4.3.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:47
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:47: 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:59
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:59: 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:71
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:71: 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:84
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:84: 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:97
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:97: 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:112
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:112: 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:135
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:135: 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:150
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:150: 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:162
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:162: 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:181
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:181: 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:206
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:206: 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:218
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:218: 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:236
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:236: 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:252
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:252: 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:268
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:268: 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:282
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:282: 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:289
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:289: 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:303
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:303: 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:316
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:316: 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:331
/home/tkloczko/rpmbuild/BUILD/vcrpy-4.3.0/tests/integration/test_tornado.py:331: 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:47
tests/integration/test_tornado.py:47: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_status_code will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:59
tests/integration/test_tornado.py:59: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_headers will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:71
tests/integration/test_tornado.py:71: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_body will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:84
tests/integration/test_tornado.py:84: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_effective_url will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:97
tests/integration/test_tornado.py:97: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_auth will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:112
tests/integration/test_tornado.py:112: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_auth_failed will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:135
tests/integration/test_tornado.py:135: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_post will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:150
tests/integration/test_tornado.py:150: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_redirects will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:162
tests/integration/test_tornado.py:162: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_cross_scheme will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:181
tests/integration/test_tornado.py:181: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_gzip will be ignored
@pytest.mark.gen_test
tests/integration/test_tornado.py:206
tests/integration/test_tornado.py:206: 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:218
tests/integration/test_tornado.py:218: 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:235
tests/integration/test_tornado.py:235: 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:252
tests/integration/test_tornado.py:252: 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:267
tests/integration/test_tornado.py:267: 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:282
tests/integration/test_tornado.py:282: 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:289
tests/integration/test_tornado.py:289: 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:303
tests/integration/test_tornado.py:303: 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:316
tests/integration/test_tornado.py:316: 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:331
tests/integration/test_tornado.py:331: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_request_time_is_set will be ignored
@pytest.mark.gen_test
-- 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
SKIPPED [1] tests/integration/test_requests.py:117: condition: sys.version_info >= (3, 6)
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
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_requests.py::test_status_code[https] - requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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 (meaning without tox unlike vcrpy's CI), 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 @kloczek please run the tests this very way and report back any failures. We can then work from there. Thanks 🙏 |
First of all 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. FYI: I'm not complaining or trying to you to force to upgrade |
Just checked and looks like |
Hi @kloczek, I don't see how your criticism of # 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 The pinning of Werkzeug is unfortunate and caused by httpbin (postmanlabs/httpbin#673) which is pulled in by pytest-httpbin (kevin1024/pytest-httpbin#72). Given that httpbin's last release is of 2018, 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 packaging to support Werkzeug >=2.1.0 using pull request https://github.com/postmanlabs/httpbin/pull/674/files which is what Gentoo did. |
Hmm. I’m a maintainer on httpbin and might be able to move things along over there. |
I'm not criticising anything or trying to connect this case to use 'python -m foo`. |
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 [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) |
@kevin1024 that would rock the house, yes please! 👍 👍
@kloczek except there was zero |
Just FTR. ===================================================================================== 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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='127.0.0.1', 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? ( |
After change to |
@kloczek that question has been answered by #645 (comment) already, I believe. |
Only detail which I see in that reply is use If yes: is it any plan to update to be able use latest version of the |
@kloczek you were asking for
|
@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 . |
Hmm I must patch that module to use cert file from /ets/pki. + 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) = |
@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?
Part of these errors is cut off and some of the errors seems related to use of the wrong certificates. The instructions at #645 (comment) 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. |
No one knows why long current version of exact piece of software with own copy of ca-bundle will be used. To be honest I've been thinking from some time to open python RFE to provide for example
I'm aware that I'm usually using way freshen versions of some modules. In other words If someone is thinking that I'm not asking to fix those issue instantly. 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 [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 And one more time: Thank you very much for provide me some really crucial details which allowed me to improve not only 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 psf/httpbin@e7d491f: 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.
___________________________________________________________________ TestNonCountingLayer.test_fail_getitem_negative_index ___________________________________________________________________
> cogr_ds = exc_wrap_pointer(
fiona/ogrext.pyx:136:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> raise exc
E fiona._err.CPLE_OpenFailedError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
fiona/_err.pyx:291: CPLE_OpenFailedError
During handling of the above exception, another exception occurred:
self = <tests.test_non_counting_layer.TestNonCountingLayer testMethod=test_fail_getitem_negative_index>
def setUp(self):
> self.c = fiona.open(self.path_gpx, "r", layer="track_points")
tests/test_non_counting_layer.py:12:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/env.py:457: in wrapper
return f(*args, **kwds)
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/__init__.py:292: in open
colxn = Collection(
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/collection.py:243: in __init__
self.session.start(self, **kwargs)
fiona/ogrext.pyx:588: in fiona.ogrext.Session.start
self.cogr_ds = gdal_open_vector(path_c, 0, drivers, kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> raise DriverError(str(exc))
E fiona.errors.DriverError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
fiona/ogrext.pyx:143: 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.
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.
_____________________________________________________________________________ TestNonCountingLayer.test_getitem _____________________________________________________________________________
> cogr_ds = exc_wrap_pointer(
fiona/ogrext.pyx:136:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> raise exc
E fiona._err.CPLE_OpenFailedError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
fiona/_err.pyx:291: CPLE_OpenFailedError
During handling of the above exception, another exception occurred:
self = <tests.test_non_counting_layer.TestNonCountingLayer testMethod=test_getitem>
def setUp(self):
> self.c = fiona.open(self.path_gpx, "r", layer="track_points")
tests/test_non_counting_layer.py:12:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/env.py:457: in wrapper
return f(*args, **kwds)
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/__init__.py:292: in open
colxn = Collection(
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/collection.py:243: in __init__
self.session.start(self, **kwargs)
fiona/ogrext.pyx:588: in fiona.ogrext.Session.start
self.cogr_ds = gdal_open_vector(path_c, 0, drivers, kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> raise DriverError(str(exc))
E fiona.errors.DriverError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
fiona/ogrext.pyx:143: 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.
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.
____________________________________________________________________________ TestNonCountingLayer.test_len_fail _____________________________________________________________________________
> cogr_ds = exc_wrap_pointer(
fiona/ogrext.pyx:136:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> raise exc
E fiona._err.CPLE_OpenFailedError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
fiona/_err.pyx:291: CPLE_OpenFailedError
During handling of the above exception, another exception occurred:
self = <tests.test_non_counting_layer.TestNonCountingLayer testMethod=test_len_fail>
def setUp(self):
> self.c = fiona.open(self.path_gpx, "r", layer="track_points")
tests/test_non_counting_layer.py:12:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/env.py:457: in wrapper
return f(*args, **kwds)
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/__init__.py:292: in open
colxn = Collection(
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/collection.py:243: in __init__
self.session.start(self, **kwargs)
fiona/ogrext.pyx:588: in fiona.ogrext.Session.start
self.cogr_ds = gdal_open_vector(path_c, 0, drivers, kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> raise DriverError(str(exc))
E fiona.errors.DriverError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
fiona/ogrext.pyx:143: 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.
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.
______________________________________________________________________________ TestNonCountingLayer.test_list _______________________________________________________________________________
> cogr_ds = exc_wrap_pointer(
fiona/ogrext.pyx:136:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> raise exc
E fiona._err.CPLE_OpenFailedError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
fiona/_err.pyx:291: CPLE_OpenFailedError
During handling of the above exception, another exception occurred:
self = <tests.test_non_counting_layer.TestNonCountingLayer testMethod=test_list>
def setUp(self):
> self.c = fiona.open(self.path_gpx, "r", layer="track_points")
tests/test_non_counting_layer.py:12:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/env.py:457: in wrapper
return f(*args, **kwds)
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/__init__.py:292: in open
colxn = Collection(
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/collection.py:243: in __init__
self.session.start(self, **kwargs)
fiona/ogrext.pyx:588: in fiona.ogrext.Session.start
self.cogr_ds = gdal_open_vector(path_c, 0, drivers, kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> raise DriverError(str(exc))
E fiona.errors.DriverError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
fiona/ogrext.pyx:143: 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.
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.
______________________________________________________________________________ TestNonCountingLayer.test_slice ______________________________________________________________________________
> cogr_ds = exc_wrap_pointer(
fiona/ogrext.pyx:136:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> raise exc
E fiona._err.CPLE_OpenFailedError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
fiona/_err.pyx:291: CPLE_OpenFailedError
During handling of the above exception, another exception occurred:
self = <tests.test_non_counting_layer.TestNonCountingLayer testMethod=test_slice>
def setUp(self):
> self.c = fiona.open(self.path_gpx, "r", layer="track_points")
tests/test_non_counting_layer.py:12:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/env.py:457: in wrapper
return f(*args, **kwds)
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/__init__.py:292: in open
colxn = Collection(
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/collection.py:243: in __init__
self.session.start(self, **kwargs)
fiona/ogrext.pyx:588: in fiona.ogrext.Session.start
self.cogr_ds = gdal_open_vector(path_c, 0, drivers, kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> raise DriverError(str(exc))
E fiona.errors.DriverError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
fiona/ogrext.pyx:143: 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.
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.
____________________________________________________________________ TestNonCountingLayer.test_warn_slice_negative_index ____________________________________________________________________
> cogr_ds = exc_wrap_pointer(
fiona/ogrext.pyx:136:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> raise exc
E fiona._err.CPLE_OpenFailedError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
fiona/_err.pyx:291: CPLE_OpenFailedError
During handling of the above exception, another exception occurred:
self = <tests.test_non_counting_layer.TestNonCountingLayer testMethod=test_warn_slice_negative_index>
def setUp(self):
> self.c = fiona.open(self.path_gpx, "r", layer="track_points")
tests/test_non_counting_layer.py:12:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/env.py:457: in wrapper
return f(*args, **kwds)
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/__init__.py:292: in open
colxn = Collection(
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/collection.py:243: in __init__
self.session.start(self, **kwargs)
fiona/ogrext.pyx:588: in fiona.ogrext.Session.start
self.cogr_ds = gdal_open_vector(path_c, 0, drivers, kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> raise DriverError(str(exc))
E fiona.errors.DriverError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
fiona/ogrext.pyx:143: 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.
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.
___________________________________________________________________________ test_schema_default_fields_wrong_type ___________________________________________________________________________
tmpdir = local('/tmp/pytest-of-tkloczko/pytest-217/test_schema_default_fields_wro0')
def test_schema_default_fields_wrong_type(tmpdir):
"""Test for SchemaError if a default field is specified with a different type"""
name = str(tmpdir.join("test.gpx"))
schema = {
"properties": OrderedDict([("ele", "str"), ("time", "datetime")]),
"geometry": "Point",
}
with pytest.raises(SchemaError):
> with fiona.open(name, "w", driver="GPX", schema=schema) as c:
tests/test_schema.py:412:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/env.py:457: in wrapper
return f(*args, **kwds)
../../BUILDROOT/python-fiona-1.9.6-2.fc36.x86_64/usr/lib64/python3.9/site-packages/fiona/__init__.py:303: in open
colxn = Collection(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <closed Collection '/tmp/pytest-of-tkloczko/pytest-217/test_schema_default_fields_wro0/test.gpx:test', mode 'w' at 0x7f12a7f95d90>
path = UnparsedPath(path='/tmp/pytest-of-tkloczko/pytest-217/test_schema_default_fields_wro0/test.gpx'), mode = 'w', driver = 'GPX'
schema = {'geometry': 'Point', 'properties': OrderedDict([('ele', 'str'), ('time', 'datetime')])}, crs = None, encoding = None, layer = None, vsi = None, archive = None
enabled_drivers = None, crs_wkt = None, ignore_fields = None, ignore_geometry = False, include_fields = None, wkt_version = None, allow_unsupported_drivers = False, kwargs = {}
def __init__(
self,
path,
mode="r",
driver=None,
schema=None,
crs=None,
encoding=None,
layer=None,
vsi=None,
archive=None,
enabled_drivers=None,
crs_wkt=None,
ignore_fields=None,
ignore_geometry=False,
include_fields=None,
wkt_version=None,
allow_unsupported_drivers=False,
**kwargs
):
"""The required ``path`` is the absolute or relative path to
a file, such as '/data/test_uk.shp'. 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.ogrext:collection.py:453 OLC_FASTSETNEXTBYINDEX: 0
DEBUG fiona.ogrext:collection.py:453 OLC_FASTFEATURECOUNT: 0
DEBUG fiona.ogrext:collection.py:453 Next index: 0
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 1
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 2
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 3
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 4
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 5
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 6
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 7
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 8
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 9
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 10
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 11
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 12
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 13
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 14
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 15
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 16
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 17
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 18
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 19
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 20
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 21
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 22
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 23
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 24
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 25
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 26
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 27
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 28
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 29
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 30
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 31
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 32
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 33
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 34
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 35
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 36
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 37
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 38
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 39
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 40
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 41
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 42
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 43
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 44
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 45
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 46
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 47
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 48
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 49
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 50
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 51
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 52
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 53
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 54
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 55
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 56
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 57
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 58
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 59
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 60
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 61
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 62
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 63
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 64
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 65
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 66
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 67
DEBUG fiona.collection:collection.py:678 Flushed buffer
DEBUG fiona.collection:collection.py:680 Stopped session
______________________________________________________________________________ TestVsiReading.test_filter_vsi _______________________________________________________________________________
------------------------------------------------------------------------------------ Captured log setup -------------------------------------------------------------------------------------
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.
------------------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------------------
DEBUG fiona.ogrext:collection.py:453 OLC_FASTSETNEXTBYINDEX: 0
DEBUG fiona.ogrext:collection.py:453 OLC_FASTFEATURECOUNT: 0
DEBUG fiona.ogrext:collection.py:453 Next index: 0
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 1
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 2
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 3
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 4
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 5
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 6
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 7
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 8
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 9
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 10
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 11
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 12
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 13
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 14
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 15
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 16
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 17
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 18
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 19
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 20
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 21
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 22
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 23
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 24
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 25
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 26
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 27
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 28
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 29
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 30
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 31
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 32
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 33
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 34
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 35
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 36
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 37
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 38
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 39
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 40
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 41
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 42
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 43
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 44
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 45
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 46
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 47
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 48
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 49
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 50
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 51
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 52
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 53
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 54
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 55
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 56
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 57
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 58
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 59
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 60
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 61
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 62
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 63
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 64
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 65
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 66
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 67
----------------------------------------------------------------------------------- Captured log teardown -----------------------------------------------------------------------------------
DEBUG fiona.collection:collection.py:678 Flushed buffer
DEBUG fiona.collection:collection.py:680 Stopped session
______________________________________________________________________________ TestZipReading.test_filter_vsi _______________________________________________________________________________
------------------------------------------------------------------------------------ Captured log setup -------------------------------------------------------------------------------------
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.
------------------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------------------
DEBUG fiona.ogrext:collection.py:453 OLC_FASTSETNEXTBYINDEX: 0
DEBUG fiona.ogrext:collection.py:453 OLC_FASTFEATURECOUNT: 0
DEBUG fiona.ogrext:collection.py:453 Next index: 0
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 1
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 2
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 3
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 4
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 5
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 6
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 7
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 8
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 9
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 10
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 11
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 12
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 13
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 14
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 15
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 16
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 17
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 18
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 19
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 20
DEBUG fiona.collection:collection.py:678 Flushed buffer
DEBUG fiona.collection:collection.py:680 Stopped session
DEBUG fiona.collection:collection.py:678 Flushed buffer
DEBUG fiona.collection:collection.py:680 Stopped session
DEBUG fiona.collection:collection.py:678 Flushed buffer
DEBUG fiona.collection:collection.py:680 Stopped session
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 21
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 22
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 23
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 24
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 25
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 26
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 27
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 28
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 29
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 30
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 31
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 32
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 33
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 34
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 35
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 36
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 37
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 38
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 39
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 40
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 41
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 42
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 43
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 44
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 45
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 46
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 47
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 48
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 49
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 50
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 51
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 52
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 53
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 54
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 55
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 56
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 57
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 58
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 59
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 60
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 61
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 62
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 63
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 64
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 65
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 66
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 67
----------------------------------------------------------------------------------- Captured log teardown -----------------------------------------------------------------------------------
DEBUG fiona.collection:collection.py:678 Flushed buffer
DEBUG fiona.collection:collection.py:680 Stopped session
___________________________________________________________________________ TestZipArchiveReading.test_filter_vsi ___________________________________________________________________________
------------------------------------------------------------------------------------ Captured log setup -------------------------------------------------------------------------------------
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.
------------------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------------------
DEBUG fiona.ogrext:collection.py:453 OLC_FASTSETNEXTBYINDEX: 0
DEBUG fiona.ogrext:collection.py:453 OLC_FASTFEATURECOUNT: 0
DEBUG fiona.ogrext:collection.py:453 Next index: 0
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 1
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 2
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 3
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 4
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 5
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 6
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 7
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 8
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 9
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 10
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 11
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 12
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 13
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 14
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 15
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 16
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 17
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 18
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 19
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 20
DEBUG fiona.collection:collection.py:678 Flushed buffer
DEBUG fiona.collection:collection.py:680 Stopped session
DEBUG fiona.collection:collection.py:678 Flushed buffer
DEBUG fiona.collection:collection.py:680 Stopped session
DEBUG fiona.collection:collection.py:678 Flushed buffer
DEBUG fiona.collection:collection.py:680 Stopped session
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 21
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 22
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 23
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 24
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 25
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 26
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 27
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 28
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 29
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 30
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 31
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 32
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 33
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 34
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 35
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 36
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 37
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 38
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 39
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 40
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 41
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 42
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 43
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 44
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 45
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 46
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 47
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 48
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 49
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 50
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 51
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 52
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 53
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 54
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 55
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 56
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 57
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 58
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 59
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 60
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 61
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 62
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 63
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 64
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 65
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 66
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 67
----------------------------------------------------------------------------------- Captured log teardown -----------------------------------------------------------------------------------
DEBUG fiona.collection:collection.py:678 Flushed buffer
DEBUG fiona.collection:collection.py:680 Stopped session
_______________________________________________________________________ TestZipArchiveReadingAbsPath.test_filter_vsi ________________________________________________________________________
------------------------------------------------------------------------------------ Captured log setup -------------------------------------------------------------------------------------
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.
------------------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------------------
DEBUG fiona.ogrext:collection.py:453 OLC_FASTSETNEXTBYINDEX: 0
DEBUG fiona.ogrext:collection.py:453 OLC_FASTFEATURECOUNT: 0
DEBUG fiona.ogrext:collection.py:453 Next index: 0
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 1
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 2
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 3
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 4
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 5
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 6
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 7
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 8
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 9
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 10
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 11
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 12
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 13
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 14
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 15
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 16
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 17
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 18
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 19
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 20
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 21
DEBUG fiona.collection:collection.py:678 Flushed buffer
DEBUG fiona.collection:collection.py:680 Stopped session
DEBUG fiona.collection:collection.py:678 Flushed buffer
DEBUG fiona.collection:collection.py:680 Stopped session
DEBUG fiona.collection:collection.py:678 Flushed buffer
DEBUG fiona.collection:collection.py:680 Stopped session
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 22
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 23
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 24
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 25
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 26
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 27
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 28
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 29
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 30
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 31
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 32
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 33
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 34
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 35
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 36
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 37
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 38
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 39
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 40
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 41
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 42
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 43
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 44
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 45
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 46
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 47
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 48
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 49
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 50
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 51
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 52
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 53
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 54
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 55
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 56
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 57
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 58
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 59
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 60
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 61
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 62
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 63
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 64
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 65
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 66
DEBUG fiona.ogrext:test_vfs.py:62 Next index: 67
----------------------------------------------------------------------------------- Captured log teardown -----------------------------------------------------------------------------------
DEBUG fiona.collection:collection.py:678 Flushed buffer
DEBUG fiona.collection:collection.py:680 Stopped session
___________________________________________________________________________ TarArchiveReadingTest.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.ogrext:collection.py:453 OLC_FASTSETNEXTBYINDEX: 0
DEBUG fiona.ogrext:collection.py:453 OLC_FASTFEATURECOUNT: 0
DEBUG fiona.ogrext:collection.py:453 Next index: 0
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 1
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 2
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 3
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 4
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 5
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 6
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 7
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 8
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 9
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 10
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 11
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 12
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 13
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 14
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 15
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 16
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 17
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 18
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 19
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 20
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 21
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 22
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 23
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 24
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 25
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 26
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 27
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 28
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 29
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 30
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 31
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 32
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 33
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 34
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 35
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 36
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 37
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 38
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 39
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 40
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 41
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 42
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 43
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 44
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 45
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 46
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 47
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 48
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 49
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 50
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 51
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 52
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 53
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 54
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 55
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 56
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 57
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 58
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 59
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 60
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 61
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 62
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 63
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 64
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 65
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 66
DEBUG fiona.ogrext:test_vfs.py:43 Next index: 67
DEBUG fiona.collection:collection.py:678 Flushed buffer
DEBUG fiona.collection:collection.py:680 Stopped session
================================================================================== short test summary info ==================================================================================
SKIPPED [2] tests/test_bounds.py:59: Driver does not support point geometries
SKIPPED [1] tests/test_bytescollection.py:216: Changed behavior with gdal 2.3, possibly related to RFC 70:Guessing output format from output file name extension for utilities
SKIPPED [21] tests/test_datetime.py:401: use '-m gdal' to run GDAL related tests.
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
FAILED tests/test_fio_cat.py::test_where_yes_two_files - AssertionError
FAILED tests/test_fio_cat.py::test_multi_layer - AssertionError
FAILED tests/test_fio_cat.py::test_vfs - AssertionError
FAILED tests/test_fio_cat.py::test_dst_crs_epsg3857 - AssertionError
FAILED tests/test_fio_collect.py::test_collect_rs - AssertionError
FAILED tests/test_fio_collect.py::test_collect_no_rs - AssertionError
FAILED tests/test_fio_collect.py::test_collect_ld - AssertionError
FAILED tests/test_fio_collect.py::test_collect_rec_buffered - AssertionError
FAILED tests/test_fio_collect.py::test_collect_noparse - AssertionError
FAILED tests/test_fio_collect.py::test_collect_noparse_records - AssertionError
FAILED tests/test_fio_collect.py::test_collect_src_crs - AssertionError
FAILED tests/test_fio_collect.py::test_collect_noparse_rs - AssertionError
FAILED tests/test_fio_distrib.py::test_distrib - AssertionError
FAILED tests/test_fio_distrib.py::test_distrib_no_rs - AssertionError
FAILED tests/test_fio_dump.py::test_dump - AssertionError
FAILED tests/test_fio_dump.py::test_dump_layer[routes] - AssertionError
FAILED tests/test_fio_dump.py::test_dump_layer[1] - AssertionError
FAILED tests/test_fio_dump.py::test_dump_layer[tracks] - AssertionError
FAILED tests/test_fio_dump.py::test_dump_layer[track_points] - AssertionError
FAILED tests/test_fio_dump.py::test_dump_layer_vfs - AssertionError
FAILED tests/test_fio_filter.py::test_seq - AssertionError
FAILED tests/test_fio_info.py::test_info_no_count - AssertionError
FAILED tests/test_fio_info.py::test_info_layer - AssertionError
FAILED tests/test_non_counting_layer.py::TestNonCountingLayer::test_fail_getitem_negative_index - fiona.errors.DriverError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
FAILED tests/test_non_counting_layer.py::TestNonCountingLayer::test_getitem - fiona.errors.DriverError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
FAILED tests/test_non_counting_layer.py::TestNonCountingLayer::test_len_fail - fiona.errors.DriverError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
FAILED tests/test_non_counting_layer.py::TestNonCountingLayer::test_list - fiona.errors.DriverError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
FAILED tests/test_non_counting_layer.py::TestNonCountingLayer::test_slice - fiona.errors.DriverError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
FAILED tests/test_non_counting_layer.py::TestNonCountingLayer::test_warn_slice_negative_index - fiona.errors.DriverError: '/home/tkloczko/rpmbuild/BUILD/Fiona-1.9.6/tests/data/test_gpx.gpx' not recognized as a supported file format.
FAILED tests/test_schema.py::test_schema_default_fields_wrong_type - fiona.errors.DriverError: unsupported driver: 'GPX'
===================================================== 46 failed, 1627 passed, 151 skipped, 5 deselected, 1 xfailed, 6 xpassed in 18.72s ===================================================== |
I'm trying to package your module as an rpm package. So I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.
python3 -sBm build -w --no-isolation
build
with--no-isolation
I'm using during all processes only locally installed modulesThe text was updated successfully, but these errors were encountered: