From 720240501dca0b4eacc3295665d7ced8719e11d2 Mon Sep 17 00:00:00 2001
From: Quentin Pradet <quentin.pradet@gmail.com>
Date: Fri, 28 Apr 2023 23:28:43 +0400
Subject: [PATCH] Test urllib3 2.0

Upstream-Status: Submitted [https://github.com/requests/toolbelt/pull/356]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../redirect_request_for_dump_all.json        | 302 +++++++++++++-----
 tests/cassettes/simple_get_request.json       |  16 +-
 tox.ini                                       |  11 +-
 3 files changed, 239 insertions(+), 90 deletions(-)

diff --git a/tests/cassettes/redirect_request_for_dump_all.json b/tests/cassettes/redirect_request_for_dump_all.json
index f713ff3..dc8fefe 100644
--- a/tests/cassettes/redirect_request_for_dump_all.json
+++ b/tests/cassettes/redirect_request_for_dump_all.json
@@ -1,17 +1,25 @@
 {
   "http_interactions": [
     {
-      "recorded_at": "2015-11-14T22:53:20",
+      "recorded_at": "2023-04-28T18:04:50",
       "request": {
         "body": {
           "encoding": "utf-8",
           "string": ""
         },
         "headers": {
-          "Accept": "*/*",
-          "Accept-Encoding": "gzip, deflate",
-          "Connection": "keep-alive",
-          "User-Agent": "python-requests/2.8.1"
+          "Accept": [
+            "*/*"
+          ],
+          "Accept-Encoding": [
+            "gzip, deflate"
+          ],
+          "Connection": [
+            "keep-alive"
+          ],
+          "User-Agent": [
+            "python-requests/2.28.1"
+          ]
         },
         "method": "GET",
         "uri": "https://httpbin.org/redirect/5"
@@ -22,14 +30,30 @@
           "string": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>Redirecting...</title>\n<h1>Redirecting...</h1>\n<p>You should be redirected automatically to target URL: <a href=\"/relative-redirect/4\">/relative-redirect/4</a>.  If not click the link."
         },
         "headers": {
-          "Access-Control-Allow-Credentials": "true",
-          "Access-Control-Allow-Origin": "*",
-          "Connection": "keep-alive",
-          "Content-Length": "247",
-          "Content-Type": "text/html; charset=utf-8",
-          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
-          "Location": "/relative-redirect/4",
-          "Server": "nginx"
+          "Access-Control-Allow-Credentials": [
+            "true"
+          ],
+          "Access-Control-Allow-Origin": [
+            "*"
+          ],
+          "Connection": [
+            "keep-alive"
+          ],
+          "Content-Length": [
+            "247"
+          ],
+          "Content-Type": [
+            "text/html; charset=utf-8"
+          ],
+          "Date": [
+            "Fri, 28 Apr 2023 18:04:50 GMT"
+          ],
+          "Location": [
+            "/relative-redirect/4"
+          ],
+          "Server": [
+            "gunicorn/19.9.0"
+          ]
         },
         "status": {
           "code": 302,
@@ -39,17 +63,25 @@
       }
     },
     {
-      "recorded_at": "2015-11-14T22:53:20",
+      "recorded_at": "2023-04-28T18:04:52",
       "request": {
         "body": {
           "encoding": "utf-8",
           "string": ""
         },
         "headers": {
-          "Accept": "*/*",
-          "Accept-Encoding": "gzip, deflate",
-          "Connection": "keep-alive",
-          "User-Agent": "python-requests/2.8.1"
+          "Accept": [
+            "*/*"
+          ],
+          "Accept-Encoding": [
+            "gzip, deflate"
+          ],
+          "Connection": [
+            "keep-alive"
+          ],
+          "User-Agent": [
+            "python-requests/2.28.1"
+          ]
         },
         "method": "GET",
         "uri": "https://httpbin.org/relative-redirect/4"
@@ -60,14 +92,30 @@
           "string": ""
         },
         "headers": {
-          "Access-Control-Allow-Credentials": "true",
-          "Access-Control-Allow-Origin": "*",
-          "Connection": "keep-alive",
-          "Content-Length": "0",
-          "Content-Type": "text/html; charset=utf-8",
-          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
-          "Location": "/relative-redirect/3",
-          "Server": "nginx"
+          "Access-Control-Allow-Credentials": [
+            "true"
+          ],
+          "Access-Control-Allow-Origin": [
+            "*"
+          ],
+          "Connection": [
+            "keep-alive"
+          ],
+          "Content-Length": [
+            "0"
+          ],
+          "Content-Type": [
+            "text/html; charset=utf-8"
+          ],
+          "Date": [
+            "Fri, 28 Apr 2023 18:04:52 GMT"
+          ],
+          "Location": [
+            "/relative-redirect/3"
+          ],
+          "Server": [
+            "gunicorn/19.9.0"
+          ]
         },
         "status": {
           "code": 302,
@@ -77,17 +125,25 @@
       }
     },
     {
-      "recorded_at": "2015-11-14T22:53:20",
+      "recorded_at": "2023-04-28T18:04:53",
       "request": {
         "body": {
           "encoding": "utf-8",
           "string": ""
         },
         "headers": {
-          "Accept": "*/*",
-          "Accept-Encoding": "gzip, deflate",
-          "Connection": "keep-alive",
-          "User-Agent": "python-requests/2.8.1"
+          "Accept": [
+            "*/*"
+          ],
+          "Accept-Encoding": [
+            "gzip, deflate"
+          ],
+          "Connection": [
+            "keep-alive"
+          ],
+          "User-Agent": [
+            "python-requests/2.28.1"
+          ]
         },
         "method": "GET",
         "uri": "https://httpbin.org/relative-redirect/3"
@@ -98,14 +154,30 @@
           "string": ""
         },
         "headers": {
-          "Access-Control-Allow-Credentials": "true",
-          "Access-Control-Allow-Origin": "*",
-          "Connection": "keep-alive",
-          "Content-Length": "0",
-          "Content-Type": "text/html; charset=utf-8",
-          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
-          "Location": "/relative-redirect/2",
-          "Server": "nginx"
+          "Access-Control-Allow-Credentials": [
+            "true"
+          ],
+          "Access-Control-Allow-Origin": [
+            "*"
+          ],
+          "Connection": [
+            "keep-alive"
+          ],
+          "Content-Length": [
+            "0"
+          ],
+          "Content-Type": [
+            "text/html; charset=utf-8"
+          ],
+          "Date": [
+            "Fri, 28 Apr 2023 18:04:53 GMT"
+          ],
+          "Location": [
+            "/relative-redirect/2"
+          ],
+          "Server": [
+            "gunicorn/19.9.0"
+          ]
         },
         "status": {
           "code": 302,
@@ -115,17 +187,25 @@
       }
     },
     {
-      "recorded_at": "2015-11-14T22:53:20",
+      "recorded_at": "2023-04-28T18:04:55",
       "request": {
         "body": {
           "encoding": "utf-8",
           "string": ""
         },
         "headers": {
-          "Accept": "*/*",
-          "Accept-Encoding": "gzip, deflate",
-          "Connection": "keep-alive",
-          "User-Agent": "python-requests/2.8.1"
+          "Accept": [
+            "*/*"
+          ],
+          "Accept-Encoding": [
+            "gzip, deflate"
+          ],
+          "Connection": [
+            "keep-alive"
+          ],
+          "User-Agent": [
+            "python-requests/2.28.1"
+          ]
         },
         "method": "GET",
         "uri": "https://httpbin.org/relative-redirect/2"
@@ -136,14 +216,30 @@
           "string": ""
         },
         "headers": {
-          "Access-Control-Allow-Credentials": "true",
-          "Access-Control-Allow-Origin": "*",
-          "Connection": "keep-alive",
-          "Content-Length": "0",
-          "Content-Type": "text/html; charset=utf-8",
-          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
-          "Location": "/relative-redirect/1",
-          "Server": "nginx"
+          "Access-Control-Allow-Credentials": [
+            "true"
+          ],
+          "Access-Control-Allow-Origin": [
+            "*"
+          ],
+          "Connection": [
+            "keep-alive"
+          ],
+          "Content-Length": [
+            "0"
+          ],
+          "Content-Type": [
+            "text/html; charset=utf-8"
+          ],
+          "Date": [
+            "Fri, 28 Apr 2023 18:04:55 GMT"
+          ],
+          "Location": [
+            "/relative-redirect/1"
+          ],
+          "Server": [
+            "gunicorn/19.9.0"
+          ]
         },
         "status": {
           "code": 302,
@@ -153,17 +249,25 @@
       }
     },
     {
-      "recorded_at": "2015-11-14T22:53:20",
+      "recorded_at": "2023-04-28T18:04:56",
       "request": {
         "body": {
           "encoding": "utf-8",
           "string": ""
         },
         "headers": {
-          "Accept": "*/*",
-          "Accept-Encoding": "gzip, deflate",
-          "Connection": "keep-alive",
-          "User-Agent": "python-requests/2.8.1"
+          "Accept": [
+            "*/*"
+          ],
+          "Accept-Encoding": [
+            "gzip, deflate"
+          ],
+          "Connection": [
+            "keep-alive"
+          ],
+          "User-Agent": [
+            "python-requests/2.28.1"
+          ]
         },
         "method": "GET",
         "uri": "https://httpbin.org/relative-redirect/1"
@@ -174,14 +278,30 @@
           "string": ""
         },
         "headers": {
-          "Access-Control-Allow-Credentials": "true",
-          "Access-Control-Allow-Origin": "*",
-          "Connection": "keep-alive",
-          "Content-Length": "0",
-          "Content-Type": "text/html; charset=utf-8",
-          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
-          "Location": "/get",
-          "Server": "nginx"
+          "Access-Control-Allow-Credentials": [
+            "true"
+          ],
+          "Access-Control-Allow-Origin": [
+            "*"
+          ],
+          "Connection": [
+            "keep-alive"
+          ],
+          "Content-Length": [
+            "0"
+          ],
+          "Content-Type": [
+            "text/html; charset=utf-8"
+          ],
+          "Date": [
+            "Fri, 28 Apr 2023 18:04:56 GMT"
+          ],
+          "Location": [
+            "/get"
+          ],
+          "Server": [
+            "gunicorn/19.9.0"
+          ]
         },
         "status": {
           "code": 302,
@@ -191,34 +311,56 @@
       }
     },
     {
-      "recorded_at": "2015-11-14T22:53:20",
+      "recorded_at": "2023-04-28T18:04:58",
       "request": {
         "body": {
           "encoding": "utf-8",
           "string": ""
         },
         "headers": {
-          "Accept": "*/*",
-          "Accept-Encoding": "gzip, deflate",
-          "Connection": "keep-alive",
-          "User-Agent": "python-requests/2.8.1"
+          "Accept": [
+            "*/*"
+          ],
+          "Accept-Encoding": [
+            "gzip, deflate"
+          ],
+          "Connection": [
+            "keep-alive"
+          ],
+          "User-Agent": [
+            "python-requests/2.28.1"
+          ]
         },
         "method": "GET",
         "uri": "https://httpbin.org/get"
       },
       "response": {
         "body": {
-          "encoding": null,
-          "string": "{\n  \"args\": {}, \n  \"headers\": {\n    \"Accept\": \"*/*\", \n    \"Accept-Encoding\": \"gzip, deflate\", \n    \"Host\": \"httpbin.org\", \n    \"User-Agent\": \"python-requests/2.8.1\"\n  }, \n  \"origin\": \"<IPADDR>\", \n  \"url\": \"https://httpbin.org/get\"\n}\n"
+          "encoding": "utf-8",
+          "string": "{\n  \"args\": {}, \n  \"headers\": {\n    \"Accept\": \"*/*\", \n    \"Accept-Encoding\": \"gzip, deflate\", \n    \"Host\": \"httpbin.org\", \n    \"User-Agent\": \"python-requests/2.28.1\", \n    \"X-Amzn-Trace-Id\": \"Root=1-644c0ac8-450daa2735c478ca518c5c8d\"\n  }, \n  \"origin\": \"83.198.52.66\", \n  \"url\": \"https://httpbin.org/get\"\n}\n"
         },
         "headers": {
-          "Access-Control-Allow-Credentials": "true",
-          "Access-Control-Allow-Origin": "*",
-          "Connection": "keep-alive",
-          "Content-Length": "239",
-          "Content-Type": "application/json",
-          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
-          "Server": "nginx"
+          "Access-Control-Allow-Credentials": [
+            "true"
+          ],
+          "Access-Control-Allow-Origin": [
+            "*"
+          ],
+          "Connection": [
+            "keep-alive"
+          ],
+          "Content-Length": [
+            "306"
+          ],
+          "Content-Type": [
+            "application/json"
+          ],
+          "Date": [
+            "Fri, 28 Apr 2023 18:04:58 GMT"
+          ],
+          "Server": [
+            "gunicorn/19.9.0"
+          ]
         },
         "status": {
           "code": 200,
@@ -228,5 +370,5 @@
       }
     }
   ],
-  "recorded_with": "betamax/0.5.1"
+  "recorded_with": "betamax/0.8.2"
 }
\ No newline at end of file
diff --git a/tests/cassettes/simple_get_request.json b/tests/cassettes/simple_get_request.json
index 68378cd..a97bcf1 100644
--- a/tests/cassettes/simple_get_request.json
+++ b/tests/cassettes/simple_get_request.json
@@ -1,7 +1,7 @@
 {
   "http_interactions": [
     {
-      "recorded_at": "2015-11-14T22:33:32",
+      "recorded_at": "2023-04-28T18:04:48",
       "request": {
         "body": {
           "encoding": "utf-8",
@@ -18,7 +18,7 @@
             "keep-alive"
           ],
           "User-Agent": [
-            "python-requests/2.8.1"
+            "python-requests/2.28.1"
           ]
         },
         "method": "GET",
@@ -26,8 +26,8 @@
       },
       "response": {
         "body": {
-          "encoding": null,
-          "string": "{\n  \"args\": {}, \n  \"headers\": {\n    \"Accept\": \"*/*\", \n    \"Accept-Encoding\": \"gzip, deflate\", \n    \"Host\": \"httpbin.org\", \n    \"User-Agent\": \"python-requests/2.8.1\"\n  }, \n  \"origin\": \"<IPADDR>\", \n  \"url\": \"https://httpbin.org/get\"\n}\n"
+          "encoding": "utf-8",
+          "string": "{\n  \"args\": {}, \n  \"headers\": {\n    \"Accept\": \"*/*\", \n    \"Accept-Encoding\": \"gzip, deflate\", \n    \"Host\": \"httpbin.org\", \n    \"User-Agent\": \"python-requests/2.28.1\", \n    \"X-Amzn-Trace-Id\": \"Root=1-644c0ac0-4986bed42b965a007af785e1\"\n  }, \n  \"origin\": \"83.198.52.66\", \n  \"url\": \"https://httpbin.org/get\"\n}\n"
         },
         "headers": {
           "Access-Control-Allow-Credentials": [
@@ -40,16 +40,16 @@
             "keep-alive"
           ],
           "Content-Length": [
-            "239"
+            "306"
           ],
           "Content-Type": [
             "application/json"
           ],
           "Date": [
-            "Sat, 14 Nov 2015 22:33:30 GMT"
+            "Fri, 28 Apr 2023 18:04:48 GMT"
           ],
           "Server": [
-            "nginx"
+            "gunicorn/19.9.0"
           ]
         },
         "status": {
@@ -60,5 +60,5 @@
       }
     }
   ],
-  "recorded_with": "betamax/0.5.1"
+  "recorded_with": "betamax/0.8.2"
 }
\ No newline at end of file
diff --git a/tox.ini b/tox.ini
index 64b6ab3..e27c275 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
 [tox]
-envlist = py{27,37,38,39,310,311,py,py3},py{27,37}-flake8,noopenssl,docstrings
+envlist = py{27,37,38,39,310,311,py,py3},py{27,37}-flake8,noopenssl,docstrings,urllib3-2.0
 
 [gh-actions]
 python =
@@ -8,12 +8,13 @@ python =
     3.8: py38
     3.9: py39
     3.10: py310
-    3.11: py311
+    3.11: py311, urllib3-2.0
 
 [testenv]
 pip_pre = False
 deps =
     requests{env:REQUESTS_VERSION:>=2.0.1,<3.0.0}
+    urllib3<2.0.0
     pytest
     mock;python_version<"3.3"
     pyopenssl
@@ -34,6 +35,12 @@ deps =
 commands =
     pytest -W error::DeprecationWarning {posargs}
 
+[testenv:urllib3-2.0]
+basepython = python3.11
+commands =
+    pip install -U urllib3>=2.0.0
+    pytest -W error::DeprecationWarning {posargs}
+
 [testenv:py27-flake8]
 basepython = python2.7
 deps =
