Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-google-resumable-media for
openSUSE:Factory checked in at 2023-05-11 14:13:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-google-resumable-media (Old)
and /work/SRC/openSUSE:Factory/.python-google-resumable-media.new.1533
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-google-resumable-media"
Thu May 11 14:13:57 2023 rev:17 rq:1086489 version:2.5.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-google-resumable-media/python-google-resumable-media.changes
2023-03-07 16:51:21.305907167 +0100
+++
/work/SRC/openSUSE:Factory/.python-google-resumable-media.new.1533/python-google-resumable-media.changes
2023-05-11 14:13:58.717507158 +0200
@@ -1,0 +2,7 @@
+Thu May 11 10:52:03 UTC 2023 - John Paul Adrian Glaubitz
<[email protected]>
+
+- Update to 2.5.0
+ Features
+ * Add support to retry known connection errors (#375)
+
+-------------------------------------------------------------------
Old:
----
google-resumable-media-2.4.1.tar.gz
New:
----
google-resumable-media-2.5.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-google-resumable-media.spec ++++++
--- /var/tmp/diff_new_pack.XillQS/_old 2023-05-11 14:13:59.209509583 +0200
+++ /var/tmp/diff_new_pack.XillQS/_new 2023-05-11 14:13:59.213509602 +0200
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-google-resumable-media
-Version: 2.4.1
+Version: 2.5.0
Release: 0
Summary: Utilities for Google Media Downloads and Resumable Uploads
License: Apache-2.0
++++++ google-resumable-media-2.4.1.tar.gz ->
google-resumable-media-2.5.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/google-resumable-media-2.4.1/PKG-INFO
new/google-resumable-media-2.5.0/PKG-INFO
--- old/google-resumable-media-2.4.1/PKG-INFO 2023-01-19 22:32:45.372634000
+0100
+++ new/google-resumable-media-2.5.0/PKG-INFO 2023-04-24 21:02:52.186299300
+0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: google-resumable-media
-Version: 2.4.1
+Version: 2.5.0
Summary: Utilities for Google Media Downloads and Resumable Uploads
Home-page: https://github.com/googleapis/google-resumable-media-python
Author: Google Cloud Platform
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/google-resumable-media-2.4.1/google/resumable_media/requests/_request_helpers.py
new/google-resumable-media-2.5.0/google/resumable_media/requests/_request_helpers.py
---
old/google-resumable-media-2.4.1/google/resumable_media/requests/_request_helpers.py
2023-01-19 22:29:29.000000000 +0100
+++
new/google-resumable-media-2.5.0/google/resumable_media/requests/_request_helpers.py
2023-04-24 21:00:19.000000000 +0200
@@ -17,6 +17,7 @@
This utilities are explicitly catered to ``requests``-like transports.
"""
+import http.client
import requests.exceptions
import urllib3.exceptions # type: ignore
@@ -35,10 +36,16 @@
_DEFAULT_READ_TIMEOUT = 60
_CONNECTION_ERROR_CLASSES = (
+ http.client.BadStatusLine,
+ http.client.IncompleteRead,
+ http.client.ResponseNotReady,
requests.exceptions.ConnectionError,
requests.exceptions.ChunkedEncodingError,
requests.exceptions.Timeout,
+ urllib3.exceptions.PoolError,
urllib3.exceptions.ProtocolError,
+ urllib3.exceptions.SSLError,
+ urllib3.exceptions.TimeoutError,
ConnectionError, # Python 3.x only, superclass of ConnectionResetError.
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/google-resumable-media-2.4.1/google_resumable_media.egg-info/PKG-INFO
new/google-resumable-media-2.5.0/google_resumable_media.egg-info/PKG-INFO
--- old/google-resumable-media-2.4.1/google_resumable_media.egg-info/PKG-INFO
2023-01-19 22:32:45.000000000 +0100
+++ new/google-resumable-media-2.5.0/google_resumable_media.egg-info/PKG-INFO
2023-04-24 21:02:52.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: google-resumable-media
-Version: 2.4.1
+Version: 2.5.0
Summary: Utilities for Google Media Downloads and Resumable Uploads
Home-page: https://github.com/googleapis/google-resumable-media-python
Author: Google Cloud Platform
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/google-resumable-media-2.4.1/setup.py
new/google-resumable-media-2.5.0/setup.py
--- old/google-resumable-media-2.4.1/setup.py 2023-01-19 22:29:29.000000000
+0100
+++ new/google-resumable-media-2.5.0/setup.py 2023-04-24 21:00:19.000000000
+0200
@@ -35,7 +35,7 @@
setuptools.setup(
name='google-resumable-media',
- version = "2.4.1",
+ version = "2.5.0",
description='Utilities for Google Media Downloads and Resumable Uploads',
author='Google Cloud Platform',
author_email='[email protected]',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/google-resumable-media-2.4.1/tests/unit/requests/test__helpers.py
new/google-resumable-media-2.5.0/tests/unit/requests/test__helpers.py
--- old/google-resumable-media-2.4.1/tests/unit/requests/test__helpers.py
2023-01-19 22:29:29.000000000 +0100
+++ new/google-resumable-media-2.5.0/tests/unit/requests/test__helpers.py
2023-04-24 21:00:19.000000000 +0200
@@ -165,14 +165,18 @@
@mock.patch("time.sleep")
@mock.patch("random.randint")
- def test_success_with_retry_connection_error(self, randint_mock,
sleep_mock):
- randint_mock.side_effect = [125, 625, 375]
+ def test_retry_success_http_standard_lib_connection_errors(
+ self, randint_mock, sleep_mock
+ ):
+ randint_mock.side_effect = [125, 625, 500, 875, 375]
- response = _make_response(http.client.NOT_FOUND)
+ status_code = int(http.client.OK)
+ response = _make_response(status_code)
responses = [
- ConnectionResetError, # Subclass of ConnectionError
- urllib3.exceptions.ConnectionError,
- requests.exceptions.ConnectionError,
+ http.client.BadStatusLine(""),
+ http.client.IncompleteRead(""),
+ http.client.ResponseNotReady,
+ ConnectionError,
response,
]
func = mock.Mock(side_effect=responses, spec=[])
@@ -183,28 +187,29 @@
)
assert ret_val == responses[-1]
-
- assert func.call_count == 4
- assert func.mock_calls == [mock.call()] * 4
-
- assert randint_mock.call_count == 3
- assert randint_mock.mock_calls == [mock.call(0, 1000)] * 3
-
- assert sleep_mock.call_count == 3
+ assert func.call_count == 5
+ assert func.mock_calls == [mock.call()] * 5
+ assert randint_mock.call_count == 4
+ assert randint_mock.mock_calls == [mock.call(0, 1000)] * 4
+ assert sleep_mock.call_count == 4
sleep_mock.assert_any_call(1.125)
sleep_mock.assert_any_call(2.625)
- sleep_mock.assert_any_call(4.375)
+ sleep_mock.assert_any_call(4.500)
+ sleep_mock.assert_any_call(8.875)
@mock.patch("time.sleep")
@mock.patch("random.randint")
- def test_success_with_retry_chunked_encoding_error(self, randint_mock,
sleep_mock):
- randint_mock.side_effect = [125, 625, 375]
+ def test_retry_success_requests_lib_connection_errors(
+ self, randint_mock, sleep_mock
+ ):
+ randint_mock.side_effect = [125, 625, 500, 875]
status_code = int(http.client.OK)
response = _make_response(status_code)
responses = [
+ requests.exceptions.ConnectionError,
requests.exceptions.ChunkedEncodingError,
- requests.exceptions.ChunkedEncodingError,
+ requests.exceptions.Timeout,
response,
]
func = mock.Mock(side_effect=responses, spec=[])
@@ -215,27 +220,27 @@
)
assert ret_val == responses[-1]
-
- assert func.call_count == 3
- assert func.mock_calls == [mock.call()] * 3
-
- assert randint_mock.call_count == 2
- assert randint_mock.mock_calls == [mock.call(0, 1000)] * 2
-
- assert sleep_mock.call_count == 2
+ assert func.call_count == 4
+ assert func.mock_calls == [mock.call()] * 4
+ assert randint_mock.call_count == 3
+ assert randint_mock.mock_calls == [mock.call(0, 1000)] * 3
+ assert sleep_mock.call_count == 3
sleep_mock.assert_any_call(1.125)
sleep_mock.assert_any_call(2.625)
+ sleep_mock.assert_any_call(4.500)
@mock.patch("time.sleep")
@mock.patch("random.randint")
- def test_success_with_retry_client_timeout(self, randint_mock, sleep_mock):
- randint_mock.side_effect = [125, 625, 375]
+ def test_retry_success_urllib3_connection_errors(self, randint_mock,
sleep_mock):
+ randint_mock.side_effect = [125, 625, 500, 875, 375]
status_code = int(http.client.OK)
response = _make_response(status_code)
responses = [
- requests.exceptions.Timeout,
- requests.exceptions.Timeout,
+ urllib3.exceptions.PoolError(None, ""),
+ urllib3.exceptions.ProtocolError,
+ urllib3.exceptions.SSLError,
+ urllib3.exceptions.TimeoutError,
response,
]
func = mock.Mock(side_effect=responses, spec=[])
@@ -246,16 +251,15 @@
)
assert ret_val == responses[-1]
-
- assert func.call_count == 3
- assert func.mock_calls == [mock.call()] * 3
-
- assert randint_mock.call_count == 2
- assert randint_mock.mock_calls == [mock.call(0, 1000)] * 2
-
- assert sleep_mock.call_count == 2
+ assert func.call_count == 5
+ assert func.mock_calls == [mock.call()] * 5
+ assert randint_mock.call_count == 4
+ assert randint_mock.mock_calls == [mock.call(0, 1000)] * 4
+ assert sleep_mock.call_count == 4
sleep_mock.assert_any_call(1.125)
sleep_mock.assert_any_call(2.625)
+ sleep_mock.assert_any_call(4.500)
+ sleep_mock.assert_any_call(8.875)
@mock.patch("time.sleep")
@mock.patch("random.randint")