Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-httplib2 for openSUSE:Factory 
checked in at 2021-12-09 19:45:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-httplib2 (Old)
 and      /work/SRC/openSUSE:Factory/.python-httplib2.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-httplib2"

Thu Dec  9 19:45:05 2021 rev:51 rq:934678 version:0.20.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-httplib2/python-httplib2.changes  
2021-05-20 19:23:49.286251400 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-httplib2.new.2520/python-httplib2.changes    
    2021-12-09 19:45:09.805120377 +0100
@@ -1,0 +2,13 @@
+Tue Nov 30 08:22:25 UTC 2021 - Dirk M??ller <[email protected]>
+
+- add pyparsing dependency 
+
+-------------------------------------------------------------------
+Mon Nov 29 10:55:53 UTC 2021 - Dirk M??ller <[email protected]>
+
+- update to 0.20.2:
+  auth: support pyparsing v3
+  proxy: correct extraction of errno from pysocks ProxyConnectionError
+  IMPORTANT cacerts: remove expired DST Root CA X3, add ISRG Root X1, X2
+
+-------------------------------------------------------------------

Old:
----
  httplib2-0.19.1.tar.gz

New:
----
  httplib2-0.20.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-httplib2.spec ++++++
--- /var/tmp/diff_new_pack.lINUIw/_old  2021-12-09 19:45:10.509120716 +0100
+++ /var/tmp/diff_new_pack.lINUIw/_new  2021-12-09 19:45:10.513120718 +0100
@@ -20,7 +20,7 @@
 # Tests require network connection
 %bcond_with tests
 Name:           python-httplib2
-Version:        0.19.1
+Version:        0.20.2
 Release:        0
 Summary:        A Python HTTP client library
 License:        Apache-2.0 AND MIT AND (GPL-2.0-or-later OR MPL-1.1 OR 
LGPL-2.1-or-later)
@@ -31,6 +31,7 @@
 BuildRequires:  python-rpm-macros
 Requires:       ca-certificates
 Requires:       python-certifi
+Requires:       python-pyparsing >= 2.4.2
 BuildArch:      noarch
 %if %{with tests}
 # Test requirements (for ssl module):

++++++ httplib2-0.19.1.tar.gz -> httplib2-0.20.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httplib2-0.19.1/CHANGELOG 
new/httplib2-0.20.2/CHANGELOG
--- old/httplib2-0.19.1/CHANGELOG       2021-03-30 18:29:47.000000000 +0200
+++ new/httplib2-0.20.2/CHANGELOG       2021-11-02 08:04:17.000000000 +0100
@@ -1,3 +1,27 @@
+0.20.2
+
+  auth: support pyparsing v3 (AttributeError downcaseTokens)
+  https://github.com/httplib2/httplib2/issues/207
+
+  proxy: correct extraction of errno from pysocks ProxyConnectionError
+  https://github.com/httplib2/httplib2/pull/202
+
+0.20.1
+
+  No changes from 0.20.0, re-upload of broken py2 wheel.
+
+0.20.0
+
+  IMPORTANT cacerts: remove expired DST Root CA X3, add ISRG Root X1, X2
+  https://github.com/httplib2/httplib2/pull/200
+  https://github.com/httplib2/httplib2/issues/203
+
+  tls: accept min/max ssl.TLSVersion enum values
+  https://github.com/httplib2/httplib2/pull/191
+
+  setup(python_requires=...) may need setuptools update
+  https://github.com/httplib2/httplib2/pull/195
+
 0.19.1
 
   auth header parsing performance optimizations; Thanks to Paul McGuire
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httplib2-0.19.1/PKG-INFO new/httplib2-0.20.2/PKG-INFO
--- old/httplib2-0.19.1/PKG-INFO        2021-03-30 18:30:11.000000000 +0200
+++ new/httplib2-0.20.2/PKG-INFO        2021-11-02 08:10:29.000000000 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
 Name: httplib2
-Version: 0.19.1
+Version: 0.20.2
 Summary: A comprehensive HTTP client library.
 Home-page: https://github.com/httplib2/httplib2
 Author: Joe Gregorio
@@ -64,5 +64,8 @@
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
 Classifier: Topic :: Internet :: WWW/HTTP
 Classifier: Topic :: Software Development :: Libraries
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httplib2-0.19.1/python2/httplib2/__init__.py 
new/httplib2-0.20.2/python2/httplib2/__init__.py
--- old/httplib2-0.19.1/python2/httplib2/__init__.py    2021-03-30 
18:29:47.000000000 +0200
+++ new/httplib2-0.20.2/python2/httplib2/__init__.py    2021-11-02 
07:41:42.000000000 +0100
@@ -19,7 +19,7 @@
     "Alex Yu",
 ]
 __license__ = "MIT"
-__version__ = "0.19.1"
+__version__ = "0.20.2"
 
 import base64
 import calendar
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httplib2-0.19.1/python2/httplib2/cacerts.txt 
new/httplib2-0.20.2/python2/httplib2/cacerts.txt
--- old/httplib2-0.19.1/python2/httplib2/cacerts.txt    2021-03-30 
18:29:47.000000000 +0200
+++ new/httplib2-0.20.2/python2/httplib2/cacerts.txt    2021-10-18 
23:44:04.000000000 +0200
@@ -2138,34 +2138,6 @@
 so8uBtjRkcfGEvRM/TAXw8HaOFvjqermobp573PYtlNXLfbQ4ddI
 -----END CERTIFICATE-----
 
-# Issuer: O=Digital Signature Trust Co., CN=DST Root CA X3
-# Subject: O=Digital Signature Trust Co., CN=DST Root CA X3
-# Label: "IdenTrust DST Root CA X3"
-# Serial: 44AFB080D6A327BA893039862EF8406B
-# MD5 Fingerprint: 41:03:52:DC:0F:F7:50:1B:16:F0:02:8E:BA:6F:45:C5
-# SHA1 Fingerprint: DA:C9:02:4F:54:D8:F6:DF:94:93:5F:B1:73:26:38:CA:6A:D7:7C:13
-# SHA256 Fingerprint: 
06:87:26:03:31:A7:24:03:D9:09:F1:05:E6:9B:CF:0D:32:E1:BD:24:93:FF:C6:D9:20:6D:11:BC:D6:77:07:39
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
-MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
-DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
-PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
-Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
-rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
-OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
-xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
-7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
-aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
-SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
-ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
-AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
-R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
-JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
-Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
------END CERTIFICATE-----
-
 # Issuer: CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US
 # Subject: CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, 
C=US
 # Serial: 33af1e6a711a9a0bb2864b11d09fae5
@@ -2194,3 +2166,60 @@
 pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
 MrY=
 -----END CERTIFICATE-----
+
+# Issuer: /C=US/O=Internet Security Research Group/CN=ISRG Root X1
+# Subject: /C=US/O=Internet Security Research Group/CN=ISRG Root X1
+# Serial: 8210CFB0D240E3594463E0BB63828B00
+# SHA1 Fingerprint: CA:BD:2A:79:A1:07:6A:31:F2:1D:25:36:35:CB:03:9D:43:29:A5:E8
+# SHA256 Fingerprint: 
96:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6
+-----BEGIN CERTIFICATE-----
+MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
+TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
+cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
+WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
+ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
+MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
+h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
+0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
+A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
+T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
+B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
+B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
+KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
+OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
+jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
+qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
+rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
+hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
+ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
+3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
+NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
+ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
+TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
+jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
+oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
+4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
+mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
+emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
+-----END CERTIFICATE-----
+
+# Issuer: /C=US/O=Internet Security Research Group/CN=ISRG Root X2
+# Subject: /C=US/O=Internet Security Research Group/CN=ISRG Root X2
+# Serial: 41D29DD172EAEEA780C12C6CE92F8752
+# SHA1 Fingerprint: BD:B1:B9:3C:D5:97:8D:45:C6:26:14:55:F8:DB:95:C7:5A:D1:53:AF
+# SHA256 Fingerprint: 
69:72:9B:8E:15:A8:6E:FC:17:7A:57:AF:B7:17:1D:FC:64:AD:D2:8C:2F:CA:8C:F1:50:7E:34:45:3C:CB:14:70
+-----BEGIN CERTIFICATE-----
+MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw
+CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg
+R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00
+MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT
+ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw
+EAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW
++1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9
+ItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T
+AQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI
+zj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW
+tL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1
+/q4AaOeMSQ+2b1tbFfLn
+-----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/httplib2-0.19.1/python2/httplib2.egg-info/SOURCES.txt 
new/httplib2-0.20.2/python2/httplib2.egg-info/SOURCES.txt
--- old/httplib2-0.19.1/python2/httplib2.egg-info/SOURCES.txt   1970-01-01 
01:00:00.000000000 +0100
+++ new/httplib2-0.20.2/python2/httplib2.egg-info/SOURCES.txt   2021-10-11 
09:44:00.000000000 +0200
@@ -0,0 +1,133 @@
+CHANGELOG
+LICENSE
+MANIFEST.in
+README.md
+SECURITY.md
+pyproject.toml
+requirements-test.txt
+requirements.txt
+setup.cfg
+setup.py
+python2/httplib2test.py
+python2/httplib2test_appengine.py
+python2/ssl_protocol_test.py
+python2/httplib2/__init__.py
+python2/httplib2/auth.py
+python2/httplib2/cacerts.txt
+python2/httplib2/certs.py
+python2/httplib2/error.py
+python2/httplib2/iri2uri.py
+python2/httplib2/socks.py
+python2/httplib2.egg-info/PKG-INFO
+python2/httplib2.egg-info/SOURCES.txt
+python2/httplib2.egg-info/dependency_links.txt
+python2/httplib2.egg-info/requires.txt
+python2/httplib2.egg-info/top_level.txt
+python2/httplib2/test/__init__.py
+python2/httplib2/test/miniserver.py
+python2/httplib2/test/other_cacerts.txt
+python2/httplib2/test/smoke_test.py
+python2/httplib2/test/test_no_socket.py
+python2/httplib2/test/test_ssl_context.py
+python2/httplib2/test/brokensocket/socket.py
+python2/httplib2/test/functional/test_proxies.py
+python3/httplib2test.py
+python3/httplib2/__init__.py
+python3/httplib2/auth.py
+python3/httplib2/cacerts.txt
+python3/httplib2/certs.py
+python3/httplib2/error.py
+python3/httplib2/iri2uri.py
+python3/httplib2/socks.py
+python3/httplib2.egg-info/SOURCES.txt
+python3/httplib2.egg-info/dependency_links.txt
+python3/httplib2.egg-info/requires.txt
+python3/httplib2.egg-info/top_level.txt
+python3/httplib2/test/other_cacerts.txt
+test/.htaccess
+test/test.asis
+test/300/final-destination.txt
+test/300/with-location-header.asis
+test/300/without-location-header.asis
+test/301/final-destination.txt
+test/301/onestep.asis
+test/302/.myhtaccess
+test/302/final-destination.txt
+test/302/no-location.asis
+test/302/onestep.asis
+test/302/twostep.asis
+test/303/303.cgi
+test/303/final-destination.txt
+test/303/redirect-to-header-reflector.cgi
+test/303/redirect-to-reflector.cgi
+test/304/end2end.cgi
+test/304/test_etag.txt
+test/304/last-modified-only/.htaccess
+test/304/last-modified-only/last-modified-only.txt
+test/307/final-destination.txt
+test/307/onestep.asis
+test/410/410.asis
+test/basic/.htaccess
+test/basic/file.txt
+test/basic/passwdfile
+test/basic-nested/.htaccess
+test/basic-nested/file.txt
+test/basic-nested/passwdfile
+test/basic-nested/subdir/.htaccess
+test/basic-nested/subdir/file.txt
+test/basic-nested/subdir/passwdfile
+test/basic2/.htaccess
+test/basic2/file.txt
+test/basic2/passwdfile
+test/conditional-updates/test.cgi
+test/deflate/deflated-content
+test/deflate/deflated-headers.txt
+test/deflate/deflated.asis
+test/deflate/failed-compression.asis
+test/digest/.htaccess
+test/digest/digestpw
+test/digest/file.txt
+test/digest-expire/.htaccess
+test/digest-expire/digestpw
+test/digest-expire/file.txt
+test/duplicate-headers/multilink.asis
+test/gzip/.htaccess
+test/gzip/failed-compression.asis
+test/gzip/final-destination.txt
+test/gzip/post.cgi
+test/methods/method_reflector.cgi
+test/no-store/no-store.asis
+test/reflector/reflector.cgi
+test/timeout/timeout.cgi
+test/user-agent/test.cgi
+test/vary/accept-double.asis
+test/vary/accept.asis
+test/vary/no-vary.asis
+test/vary/unused-header.asis
+tests/__init__.py
+tests/fuzz_request.py
+tests/fuzz_url.py
+tests/test_auth.py
+tests/test_cacerts_from_env.py
+tests/test_cache.py
+tests/test_encoding.py
+tests/test_http.py
+tests/test_https.py
+tests/test_other.py
+tests/test_proxy.py
+tests/test_uri.py
+tests/tls/ca.key
+tests/tls/ca.pem
+tests/tls/ca.srl
+tests/tls/ca_unused.pem
+tests/tls/client.crt
+tests/tls/client.key
+tests/tls/client.pem
+tests/tls/client_chain.pem
+tests/tls/client_encrypted.crt
+tests/tls/client_encrypted.key
+tests/tls/client_encrypted.pem
+tests/tls/server.crt
+tests/tls/server.key
+tests/tls/server.pem
+tests/tls/server_chain.pem
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/httplib2-0.19.1/python2/httplib2.egg-info/dependency_links.txt 
new/httplib2-0.20.2/python2/httplib2.egg-info/dependency_links.txt
--- old/httplib2-0.19.1/python2/httplib2.egg-info/dependency_links.txt  
1970-01-01 01:00:00.000000000 +0100
+++ new/httplib2-0.20.2/python2/httplib2.egg-info/dependency_links.txt  
2021-10-11 09:44:00.000000000 +0200
@@ -0,0 +1 @@
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/httplib2-0.19.1/python2/httplib2.egg-info/requires.txt 
new/httplib2-0.20.2/python2/httplib2.egg-info/requires.txt
--- old/httplib2-0.19.1/python2/httplib2.egg-info/requires.txt  1970-01-01 
01:00:00.000000000 +0100
+++ new/httplib2-0.20.2/python2/httplib2.egg-info/requires.txt  2021-10-11 
09:44:00.000000000 +0200
@@ -0,0 +1 @@
+pyparsing<3,>=2.4.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/httplib2-0.19.1/python2/httplib2.egg-info/top_level.txt 
new/httplib2-0.20.2/python2/httplib2.egg-info/top_level.txt
--- old/httplib2-0.19.1/python2/httplib2.egg-info/top_level.txt 1970-01-01 
01:00:00.000000000 +0100
+++ new/httplib2-0.20.2/python2/httplib2.egg-info/top_level.txt 2021-10-11 
09:44:00.000000000 +0200
@@ -0,0 +1 @@
+httplib2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httplib2-0.19.1/python3/httplib2/__init__.py 
new/httplib2-0.20.2/python3/httplib2/__init__.py
--- old/httplib2-0.19.1/python3/httplib2/__init__.py    2021-03-30 
18:29:47.000000000 +0200
+++ new/httplib2-0.20.2/python3/httplib2/__init__.py    2021-11-02 
07:41:42.000000000 +0100
@@ -15,7 +15,7 @@
     "Alex Yu",
 ]
 __license__ = "MIT"
-__version__ = "0.19.1"
+__version__ = "0.20.2"
 
 import base64
 import calendar
@@ -151,15 +151,18 @@
     # source: 
https://docs.python.org/3/library/ssl.html#ssl.SSLContext.maximum_version
     if maximum_version is not None:
         if hasattr(context, "maximum_version"):
-            context.maximum_version = getattr(ssl.TLSVersion, maximum_version)
+            if isinstance(maximum_version, str):
+                maximum_version = getattr(ssl.TLSVersion, maximum_version)
+            context.maximum_version = maximum_version
         else:
             raise RuntimeError("setting tls_maximum_version requires Python 
3.7 and OpenSSL 1.1 or newer")
     if minimum_version is not None:
         if hasattr(context, "minimum_version"):
-            context.minimum_version = getattr(ssl.TLSVersion, minimum_version)
+            if isinstance(minimum_version, str):
+                minimum_version = getattr(ssl.TLSVersion, minimum_version)
+            context.minimum_version = minimum_version
         else:
             raise RuntimeError("setting tls_minimum_version requires Python 
3.7 and OpenSSL 1.1 or newer")
-
     # check_hostname requires python 3.4+
     # we will perform the equivalent in HTTPSConnectionWithTimeout.connect() 
by calling ssl.match_hostname
     # if check_hostname is not supported.
@@ -180,6 +183,20 @@
     return [header for header in list(response.keys()) if header not in 
hopbyhop]
 
 
+def _errno_from_exception(e):
+    # socket.error and common wrap in .args
+    if len(e.args) > 0:
+        return e.args[0].errno if isinstance(e.args[0], socket.error) else 
e.errno
+
+    # pysocks.ProxyError wraps in .socket_err
+    # https://github.com/httplib2/httplib2/pull/202
+    if hasattr(e, "socket_err"):
+        e_int = e.socket_err
+        return e_int.args[0].errno if isinstance(e_int.args[0], socket.error) 
else e_int.errno
+
+    return None
+
+
 URI = re.compile(r"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?")
 
 
@@ -1352,7 +1369,7 @@
                 conn.close()
                 raise ServerNotFoundError("Unable to find the server at %s" % 
conn.host)
             except socket.error as e:
-                errno_ = e.args[0].errno if isinstance(e.args[0], 
socket.error) else e.errno
+                errno_ = _errno_from_exception(e)
                 if errno_ in (errno.ENETUNREACH, errno.EADDRNOTAVAIL) and i < 
RETRIES:
                     continue  # retry on potentially transient errors
                 raise
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httplib2-0.19.1/python3/httplib2/auth.py 
new/httplib2-0.20.2/python3/httplib2/auth.py
--- old/httplib2-0.19.1/python3/httplib2/auth.py        2021-03-30 
18:29:47.000000000 +0200
+++ new/httplib2-0.20.2/python3/httplib2/auth.py        2021-11-02 
07:35:56.000000000 +0100
@@ -5,6 +5,12 @@
 
 from .error import *
 
+
+try:  # pyparsing>=3.0.0
+    downcaseTokens = pp.common.downcaseTokens
+except AttributeError:
+    downcaseTokens = pp.downcaseTokens
+
 UNQUOTE_PAIRS = re.compile(r"\\(.)")
 unquote = lambda s, l, t: UNQUOTE_PAIRS.sub(r"\1", t[0][1:-1])
 
@@ -17,7 +23,7 @@
 )
 
 quoted_string = 
pp.dblQuotedString.copy().setName("quoted-string").setParseAction(unquote)
-auth_param_name = 
token.copy().setName("auth-param-name").addParseAction(pp.downcaseTokens)
+auth_param_name = 
token.copy().setName("auth-param-name").addParseAction(downcaseTokens)
 auth_param = auth_param_name + pp.Suppress("=") + (quoted_string | token)
 params = pp.Dict(pp.delimitedList(pp.Group(auth_param)))
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httplib2-0.19.1/python3/httplib2/cacerts.txt 
new/httplib2-0.20.2/python3/httplib2/cacerts.txt
--- old/httplib2-0.19.1/python3/httplib2/cacerts.txt    2021-03-30 
18:29:47.000000000 +0200
+++ new/httplib2-0.20.2/python3/httplib2/cacerts.txt    2021-10-18 
23:44:04.000000000 +0200
@@ -2138,34 +2138,6 @@
 so8uBtjRkcfGEvRM/TAXw8HaOFvjqermobp573PYtlNXLfbQ4ddI
 -----END CERTIFICATE-----
 
-# Issuer: O=Digital Signature Trust Co., CN=DST Root CA X3
-# Subject: O=Digital Signature Trust Co., CN=DST Root CA X3
-# Label: "IdenTrust DST Root CA X3"
-# Serial: 44AFB080D6A327BA893039862EF8406B
-# MD5 Fingerprint: 41:03:52:DC:0F:F7:50:1B:16:F0:02:8E:BA:6F:45:C5
-# SHA1 Fingerprint: DA:C9:02:4F:54:D8:F6:DF:94:93:5F:B1:73:26:38:CA:6A:D7:7C:13
-# SHA256 Fingerprint: 
06:87:26:03:31:A7:24:03:D9:09:F1:05:E6:9B:CF:0D:32:E1:BD:24:93:FF:C6:D9:20:6D:11:BC:D6:77:07:39
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
-MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
-DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
-PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
-Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
-rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
-OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
-xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
-7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
-aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
-SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
-ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
-AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
-R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
-JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
-Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
------END CERTIFICATE-----
-
 # Issuer: CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US
 # Subject: CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, 
C=US
 # Serial: 33af1e6a711a9a0bb2864b11d09fae5
@@ -2195,3 +2167,59 @@
 MrY=
 -----END CERTIFICATE-----
 
+# Issuer: /C=US/O=Internet Security Research Group/CN=ISRG Root X1
+# Subject: /C=US/O=Internet Security Research Group/CN=ISRG Root X1
+# Serial: 8210CFB0D240E3594463E0BB63828B00
+# SHA1 Fingerprint: CA:BD:2A:79:A1:07:6A:31:F2:1D:25:36:35:CB:03:9D:43:29:A5:E8
+# SHA256 Fingerprint: 
96:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6
+-----BEGIN CERTIFICATE-----
+MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
+TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
+cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
+WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
+ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
+MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
+h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
+0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
+A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
+T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
+B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
+B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
+KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
+OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
+jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
+qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
+rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
+hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
+ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
+3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
+NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
+ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
+TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
+jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
+oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
+4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
+mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
+emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
+-----END CERTIFICATE-----
+
+# Issuer: /C=US/O=Internet Security Research Group/CN=ISRG Root X2
+# Subject: /C=US/O=Internet Security Research Group/CN=ISRG Root X2
+# Serial: 41D29DD172EAEEA780C12C6CE92F8752
+# SHA1 Fingerprint: BD:B1:B9:3C:D5:97:8D:45:C6:26:14:55:F8:DB:95:C7:5A:D1:53:AF
+# SHA256 Fingerprint: 
69:72:9B:8E:15:A8:6E:FC:17:7A:57:AF:B7:17:1D:FC:64:AD:D2:8C:2F:CA:8C:F1:50:7E:34:45:3C:CB:14:70
+-----BEGIN CERTIFICATE-----
+MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw
+CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg
+R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00
+MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT
+ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw
+EAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW
++1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9
+ItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T
+AQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI
+zj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW
+tL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1
+/q4AaOeMSQ+2b1tbFfLn
+-----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httplib2-0.19.1/python3/httplib2.egg-info/PKG-INFO 
new/httplib2-0.20.2/python3/httplib2.egg-info/PKG-INFO
--- old/httplib2-0.19.1/python3/httplib2.egg-info/PKG-INFO      2021-03-30 
18:30:11.000000000 +0200
+++ new/httplib2-0.20.2/python3/httplib2.egg-info/PKG-INFO      2021-11-02 
08:10:29.000000000 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
 Name: httplib2
-Version: 0.19.1
+Version: 0.20.2
 Summary: A comprehensive HTTP client library.
 Home-page: https://github.com/httplib2/httplib2
 Author: Joe Gregorio
@@ -64,5 +64,8 @@
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
 Classifier: Topic :: Internet :: WWW/HTTP
 Classifier: Topic :: Software Development :: Libraries
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/httplib2-0.19.1/python3/httplib2.egg-info/SOURCES.txt 
new/httplib2-0.20.2/python3/httplib2.egg-info/SOURCES.txt
--- old/httplib2-0.19.1/python3/httplib2.egg-info/SOURCES.txt   2021-03-30 
18:30:11.000000000 +0200
+++ new/httplib2-0.20.2/python3/httplib2.egg-info/SOURCES.txt   2021-11-02 
08:10:29.000000000 +0100
@@ -18,6 +18,10 @@
 python2/httplib2/error.py
 python2/httplib2/iri2uri.py
 python2/httplib2/socks.py
+python2/httplib2.egg-info/SOURCES.txt
+python2/httplib2.egg-info/dependency_links.txt
+python2/httplib2.egg-info/requires.txt
+python2/httplib2.egg-info/top_level.txt
 python2/httplib2/test/__init__.py
 python2/httplib2/test/miniserver.py
 python2/httplib2/test/other_cacerts.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/httplib2-0.19.1/python3/httplib2.egg-info/requires.txt 
new/httplib2-0.20.2/python3/httplib2.egg-info/requires.txt
--- old/httplib2-0.19.1/python3/httplib2.egg-info/requires.txt  2021-03-30 
18:30:11.000000000 +0200
+++ new/httplib2-0.20.2/python3/httplib2.egg-info/requires.txt  2021-11-02 
08:10:29.000000000 +0100
@@ -1 +1,6 @@
+
+[:python_version < "3.0"]
 pyparsing<3,>=2.4.2
+
+[:python_version > "3.0"]
+pyparsing!=3.0.0,!=3.0.1,!=3.0.2,!=3.0.3,<4,>=2.4.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httplib2-0.19.1/requirements.txt 
new/httplib2-0.20.2/requirements.txt
--- old/httplib2-0.19.1/requirements.txt        2021-03-30 18:29:47.000000000 
+0200
+++ new/httplib2-0.20.2/requirements.txt        2021-11-02 07:35:56.000000000 
+0100
@@ -1 +1,2 @@
-pyparsing>=2.4.2,<3 # TODO include v3 after dropping Python2 support
+pyparsing>=2.4.2,<3; python_version<'3.0' # TODO remove after dropping Python2 
support
+pyparsing>=2.4.2,<4, !=3.0.0, !=3.0.1, !=3.0.2, !=3.0.3; python_version>'3.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httplib2-0.19.1/setup.py new/httplib2-0.20.2/setup.py
--- old/httplib2-0.19.1/setup.py        2021-03-30 18:29:47.000000000 +0200
+++ new/httplib2-0.20.2/setup.py        2021-11-02 07:41:42.000000000 +0100
@@ -4,7 +4,7 @@
 import sys
 
 pkgdir = {"": "python%s" % sys.version_info[0]}
-VERSION = "0.19.1"
+VERSION = "0.20.2"
 
 
 # `python setup.py test` uses existing Python environment, no virtualenv, no 
pip.
@@ -88,6 +88,7 @@
     package_data={"httplib2": ["*.txt"]},
     install_requires=read_requirements("requirements.txt"),
     tests_require=read_requirements("requirements-test.txt"),
+    python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
     cmdclass={"test": TestCommand},
     classifiers=[
         "Development Status :: 4 - Beta",
@@ -103,6 +104,8 @@
         "Programming Language :: Python :: 3.5",
         "Programming Language :: Python :: 3.6",
         "Programming Language :: Python :: 3.7",
+        "Programming Language :: Python :: 3.8",
+        "Programming Language :: Python :: 3.9",
         "Topic :: Internet :: WWW/HTTP",
         "Topic :: Software Development :: Libraries",
     ],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httplib2-0.19.1/tests/fuzz_request.py 
new/httplib2-0.20.2/tests/fuzz_request.py
--- old/httplib2-0.19.1/tests/fuzz_request.py   2021-03-30 18:29:47.000000000 
+0200
+++ new/httplib2-0.20.2/tests/fuzz_request.py   2021-10-25 20:19:35.000000000 
+0200
@@ -1,16 +1,18 @@
 import sys
-import httplib2
 import atheris
-import tests
 
+with atheris.instrument_imports():
+    import httplib2
+    import tests
 
+
[email protected]_func
 def TestOneInput(input_bytes):
     http = httplib2.Http()
     ib = b"HTTP/1.0 200 OK\r\n" + input_bytes
     with tests.server_const_bytes(ib) as uri:
         http.request(uri)
 
-
 def main():
     atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=True)
     atheris.Fuzz()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httplib2-0.19.1/tests/fuzz_url.py 
new/httplib2-0.20.2/tests/fuzz_url.py
--- old/httplib2-0.19.1/tests/fuzz_url.py       2021-03-30 18:29:47.000000000 
+0200
+++ new/httplib2-0.20.2/tests/fuzz_url.py       2021-10-03 23:10:32.000000000 
+0200
@@ -1,8 +1,11 @@
 import sys
 import atheris
-import httplib2
 
+with atheris.instrument_imports():
+    import httplib2
 
+
[email protected]_func
 def TestOneInput(data):
     fdp = atheris.FuzzedDataProvider(data)
     original = fdp.ConsumeUnicode(sys.maxsize)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httplib2-0.19.1/tests/test_http.py 
new/httplib2-0.20.2/tests/test_http.py
--- old/httplib2-0.19.1/tests/test_http.py      2021-03-30 18:29:47.000000000 
+0200
+++ new/httplib2-0.20.2/tests/test_http.py      2021-10-25 20:19:35.000000000 
+0200
@@ -735,4 +735,11 @@
         response, content = http.request(danger_url, "GET")
         assert response.status == 200
         req = tests.HttpRequest.from_bytes(content)
-        assert req.uri == "/?q=%20HTTP/1.1%0D%0Aignore-http:"
+        expect = (
+            # new behavior after bpo-43882 fix
+            # https://github.com/httplib2/httplib2/issues/193
+            "/?q=%20HTTP/1.1ignore-http:",
+            # old behavior
+            "/?q=%20HTTP/1.1%0D%0Aignore-http:",
+        )
+        assert req.uri in expect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httplib2-0.19.1/tests/test_https.py 
new/httplib2-0.20.2/tests/test_https.py
--- old/httplib2-0.19.1/tests/test_https.py     2021-03-30 18:29:47.000000000 
+0200
+++ new/httplib2-0.20.2/tests/test_https.py     2021-10-25 20:19:35.000000000 
+0200
@@ -71,34 +71,20 @@
             pass
 
 
[email protected](
-    not hasattr(tests.ssl_context(), "minimum_version"),
-    reason="ssl doesn't support TLS min/max",
+ssl_context_accept_version = hasattr(tests.ssl_context(), "maximum_version") 
and hasattr(
+    tests.ssl_context(), "minimum_version"
 )
-def test_set_min_tls_version():
-    # Test setting minimum TLS version
-    # We expect failure on Python < 3.7 or OpenSSL < 1.1
-    expect_success = hasattr(ssl.SSLContext(), 'minimum_version')
-    try:
-        http = httplib2.Http(tls_minimum_version="TLSv1_2")
-        http.request(tests.DUMMY_HTTPS_URL)
-    except RuntimeError:
-        assert not expect_success
-    except socket.error:
-        assert expect_success
 
 
[email protected](
-    not hasattr(tests.ssl_context(), "maximum_version"),
-    reason="ssl doesn't support TLS min/max",
-)
-def test_set_max_tls_version():
-    # Test setting maximum TLS version
-    # We expect RuntimeError on Python < 3.7 or OpenSSL < 1.1
-    # We expect socket error otherwise
-    expect_success = hasattr(ssl.SSLContext(), 'maximum_version')
[email protected](not ssl_context_accept_version, reason="ssl doesn't 
support TLS min/max")
[email protected]("attr", ("maximum_version", "minimum_version"))
[email protected]("version", (None, "TLSv1_2", ssl.TLSVersion.TLSv1_2) 
if ssl_context_accept_version else (None,))
+def test_set_tls_version(attr, version):
+    # We expect failure on Python < 3.7 or OpenSSL < 1.1
+    expect_success = hasattr(ssl.SSLContext(), attr)
+    kwargs = {"tls_" + attr: version}
+    http = httplib2.Http(**kwargs)
     try:
-        http = httplib2.Http(tls_maximum_version="TLSv1_2")
         http.request(tests.DUMMY_HTTPS_URL)
     except RuntimeError:
         assert not expect_success

Reply via email to