From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5FD14EB64DD for ; Thu, 13 Jul 2023 04:54:51 +0000 (UTC) Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) by mx.groups.io with SMTP id smtpd.web11.1748.1689224085971748509 for ; Wed, 12 Jul 2023 21:54:46 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="signature has expired" header.i=@gmail.com header.s=20221208 header.b=lRQ4mEoT; spf=pass (domain: gmail.com, ip: 209.85.216.50, mailfrom: raj.khem@gmail.com) Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-2657d405ad5so148316a91.1 for ; Wed, 12 Jul 2023 21:54:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1689224085; x=1691816085; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=5RdobcSWtkmVaTGNMfTbDQUceEu4qBNhpAQ30+TcpoM=; b=lRQ4mEoTNalWtCzyt2wadOfv/6VRpBTXumsRw2HdQuOi1jITQ2FtH4KHRMiHx4D2mq yIoZoDmXw60bIA6Bysr/bQjcHnTPnuqqkuuI25XksfeCCz+EkkXGKUJS+LL9KfH86/p0 rOROZn0vIFrxAgP9H+Z3q2g0wPxnj3HMR+8N+DvvnYNhwa5+k7ZLlPODDXBJDguSjOo+ 19zSuj8GJaGALutIvZhqaFwdoXGf/cfu+LxBYinyWK6Hhn5H6kQBZb07oCjpAkfMR8BZ omEQ36gDQzOqO59riX1r6PF0wV9v13k82zgwwTZtQJtmYJyG8yWEQ1sJIWWT95MW8Uh8 TrsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689224085; x=1691816085; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=5RdobcSWtkmVaTGNMfTbDQUceEu4qBNhpAQ30+TcpoM=; b=gTznE08mR5o5ILmCNCvESy33THTtmmK9YxXQuriVqgeJ8VzoJLKY645Z0SopWTSPPa c+AzwdMRmHRpjJaHeD1QnIiGOvtHENVI8/qz+mehiWOlAKBdFNFtUqFQFFYXu9HgnXVJ ++7Xsf9of63Ykm4KCn82qo0UztTHxw2iekN7wP9W2oPAvwQP6bBeFGG0WzVR22rleJGx Hyl3ygZWA6D7+ntsAImJ2bUN9svUFUzukC7G1m5slOBMMd9/Zj5Dpnr0kl3nKXdL0UI9 u2sBOO145KDyxFzcnJcttrF9FA8nAPEWYknQyOqI7M9gq8eQQfIzO08twZXYQezpTkce o/0A== X-Gm-Message-State: ABy/qLantkjNtyjc6Ww00i1W+xfVIQ7FJRR1JEMefm9K0oCzLQPIgTLG PgKAbeDsGU6NHju0yzTcezd+UDpTN5g= X-Google-Smtp-Source: APBJJlE3jeets3XdP+vUbYILvK60Dm0kjy30cnHQv60ibiw1Am/aCxF3wTtv+xvCK4Q6wpaE+T1z9g== X-Received: by 2002:a17:90a:7887:b0:263:479:3dc with SMTP id x7-20020a17090a788700b00263047903dcmr361514pjk.19.1689224083228; Wed, 12 Jul 2023 21:54:43 -0700 (PDT) Received: from apollo.hsd1.ca.comcast.net ([2601:646:9181:d380::5a1b]) by smtp.gmail.com with ESMTPSA id b6-20020a17090acc0600b00263b4b1255esm10772561pju.51.2023.07.12.21.54.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jul 2023 21:54:42 -0700 (PDT) From: Khem Raj To: openembedded-devel@lists.openembedded.org Cc: Khem Raj Subject: [meta-python][PATCH] python3-requests-toolbelt: Fix ptest failures seen with urllib3 2.0 Date: Wed, 12 Jul 2023 21:54:40 -0700 Message-ID: <20230713045440.650828-1-raj.khem@gmail.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 13 Jul 2023 04:54:51 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/103851 Currently we see ptest failures like below testseries | result_id : oeqa | runtime_meta-python-ptest-image-python3-req= uests-toolbelt_qemux86-64_20230713012809 ptestresult.python3-requests-toolbelt.tests/test_dump.py::TestDumpRealR= esponses::test_dump_all ptestresult.python3-requests-toolbelt.tests/test_dump.py::TestDumpRealR= esponses::test_dump_response ptestresult.python3-requests-toolbelt.tests/test_sessions.py::TestBased= Session::test_prepared_request_override_base ptestresult.python3-requests-toolbelt.tests/test_sessions.py::TestBased= Session::test_prepared_request_with_base ptestresult.python3-requests-toolbelt.tests/test_sessions.py::TestBased= Session::test_request_override_base ptestresult.python3-requests-toolbelt.tests/test_sessions.py::TestBased= Session::test_request_with_base These patches from a posted pull upstream fixes them Signed-off-by: Khem Raj --- ...56f4159c40a2927fb88546419f2e1697ad5f.patch | 1492 +++++++++++++++++ ...40501dca0b4eacc3295665d7ced8719e11d2.patch | 546 ++++++ .../python/python3-requests-toolbelt_1.0.0.bb | 2 + 3 files changed, 2040 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-requests-to= olbelt/090856f4159c40a2927fb88546419f2e1697ad5f.patch create mode 100644 meta-python/recipes-devtools/python/python3-requests-to= olbelt/720240501dca0b4eacc3295665d7ced8719e11d2.patch diff --git a/meta-python/recipes-devtools/python/python3-requests-toolbelt/= 090856f4159c40a2927fb88546419f2e1697ad5f.patch b/meta-python/recipes-devtoo= ls/python/python3-requests-toolbelt/090856f4159c40a2927fb88546419f2e1697ad5= f.patch new file mode 100644 index 0000000000..948dd2ad55 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-requests-toolbelt/090856f= 4159c40a2927fb88546419f2e1697ad5f.patch @@ -0,0 +1,1492 @@ +From 090856f4159c40a2927fb88546419f2e1697ad5f Mon Sep 17 00:00:00 2001 +From: Quentin Pradet +Date: Fri, 28 Apr 2023 22:03:46 +0400 +Subject: [PATCH] Indent cassettes files to help track changes in git + +Upstream-Status: Submitted [https://github.com/requests/toolbelt/pull/356] +Signed-off-by: Khem Raj +--- + tests/cassettes/file_for_download.json | 56 ++++- + tests/cassettes/http2bin_cookies.json | 133 +++++++++- + tests/cassettes/http2bin_fingerprint.json | 65 ++++- + tests/cassettes/httpbin_guess_auth_basic.json | 115 ++++++++- + .../cassettes/httpbin_guess_auth_digest.json | 124 +++++++++- + tests/cassettes/httpbin_guess_auth_none.json | 59 ++++- + tests/cassettes/klevas_vu_lt_ssl3.json | 36 ++- + .../redirect_request_for_dump_all.json | 233 +++++++++++++++++- + tests/cassettes/simple_get_request.json | 65 ++++- + tests/cassettes/stream_response_to_file.json | 181 +++++++++++++- + ...sponse_without_content_length_to_file.json | 175 ++++++++++++- + tests/cassettes/test_x509_adapter_der.json | 69 +++++- + tests/cassettes/test_x509_adapter_pem.json | 69 +++++- + 13 files changed, 1367 insertions(+), 13 deletions(-) + +diff --git a/tests/cassettes/file_for_download.json b/tests/cassettes/file= _for_download.json +index 9e4bb8f..d171443 100644 +--- a/tests/cassettes/file_for_download.json ++++ b/tests/cassettes/file_for_download.json +@@ -1 +1,55 @@ +-{"http_interactions": [{"request": {"uri": "https://stxnext.com/static/im= g/logo.830ebe551641.svg", "body": {"encoding": "utf-8", "string": ""}, "met= hod": "GET", "headers": {"User-Agent": ["python-requests/2.2.1 CPython/3.5.= 2 Darwin/17.3.0"], "Accept-Encoding": ["gzip, deflate, compress"], "Accept"= : ["*/*"]}}, "recorded_at": "2018-01-04T23:00:12", "response": {"url": "htt= ps://stxnext.com/static/img/logo.830ebe551641.svg", "status": {"message": "= OK", "code": 200}, "body": {"encoding": null, "string": ""}, "headers": {"date": ["Thu, 04= Jan 2018 23:00:15 GMT"], "strict-transport-security": ["max-age=3D0; inclu= deSubdomains; preload"], "last-modified": ["Wed, 22 Nov 2017 09:22:00 GMT"]= , "content-type": ["image/svg+xml"], "content-length": ["5177"]}}}], "recor= ded_with": "betamax/0.8.0"} +\ No newline at end of file ++{ ++ "http_interactions": [ ++ { ++ "recorded_at": "2018-01-04T23:00:12", ++ "request": { ++ "body": { ++ "encoding": "utf-8", ++ "string": "" ++ }, ++ "headers": { ++ "Accept": [ ++ "*/*" ++ ], ++ "Accept-Encoding": [ ++ "gzip, deflate, compress" ++ ], ++ "User-Agent": [ ++ "python-requests/2.2.1 CPython/3.5.2 Darwin/17.3.0" ++ ] ++ }, ++ "method": "GET", ++ "uri": "https://stxnext.com/static/img/logo.830ebe551641.svg" ++ }, ++ "response": { ++ "body": { ++ "encoding": null, ++ "string": "= " ++ }, ++ "headers": { ++ "content-length": [ ++ "5177" ++ ], ++ "content-type": [ ++ "image/svg+xml" ++ ], ++ "date": [ ++ "Thu, 04 Jan 2018 23:00:15 GMT" ++ ], ++ "last-modified": [ ++ "Wed, 22 Nov 2017 09:22:00 GMT" ++ ], ++ "strict-transport-security": [ ++ "max-age=3D0; includeSubdomains; preload" ++ ] ++ }, ++ "status": { ++ "code": 200, ++ "message": "OK" ++ }, ++ "url": "https://stxnext.com/static/img/logo.830ebe551641.svg" ++ } ++ } ++ ], ++ "recorded_with": "betamax/0.8.0" ++} +\ No newline at end of file +diff --git a/tests/cassettes/http2bin_cookies.json b/tests/cassettes/http2= bin_cookies.json +index a8368ed..3d907da 100644 +--- a/tests/cassettes/http2bin_cookies.json ++++ b/tests/cassettes/http2bin_cookies.json +@@ -1 +1,132 @@ +-{"recorded_with": "betamax/0.5.1", "http_interactions": [{"response": {"s= tatus": {"code": 302, "message": "FOUND"}, "body": {"string": "\nRedirecting...</title= >\n<h1>Redirecting...</h1>\n<p>You should be redirected automatically to ta= rget URL: <a href=3D\"/cookies\">/cookies</a>. If not click the link.", "e= ncoding": "utf-8"}, "url": "https://httpbin.org/cookies/set?cookie0=3Dvalue= 0", "headers": {"Location": ["/cookies"], "Content-Length": ["223"], "Date"= : ["Fri, 13 Nov 2015 00:23:20 GMT"], "Access-Control-Allow-Credentials": ["= true"], "Access-Control-Allow-Origin": ["*"], "Connection": ["keep-alive"],= "Server": ["nginx"], "Set-Cookie": ["cookie0=3Dvalue0; Path=3D/"], "Conten= t-Type": ["text/html; charset=3Dutf-8"]}}, "recorded_at": "2015-11-13T00:23= :19", "request": {"uri": "https://httpbin.org/cookies/set?cookie0=3Dvalue0"= , "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": = {"Connection": ["keep-alive"], "User-Agent": ["python-requests/2.8.1"], "Ac= cept-Encoding": ["gzip, deflate"], "Accept": ["*/*"]}}}, {"response": {"sta= tus": {"code": 200, "message": "OK"}, "body": {"string": "{\n \"cookies\":= {\n \"cookie0\": \"value0\"\n }\n}\n", "encoding": null}, "url": "http= s://httpbin.org/cookies", "headers": {"Access-Control-Allow-Credentials": [= "true"], "Content-Length": ["47"], "Date": ["Fri, 13 Nov 2015 00:23:20 GMT"= ], "Content-Type": ["application/json"], "Connection": ["keep-alive"], "Ser= ver": ["nginx"], "Access-Control-Allow-Origin": ["*"]}}, "recorded_at": "20= 15-11-13T00:23:19", "request": {"uri": "https://httpbin.org/cookies", "meth= od": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Conne= ction": ["keep-alive"], "User-Agent": ["python-requests/2.8.1"], "Accept-En= coding": ["gzip, deflate"], "Accept": ["*/*"], "Cookie": ["cookie0=3Dvalue0= "]}}}]} +\ No newline at end of file ++{ ++ "http_interactions": [ ++ { ++ "recorded_at": "2015-11-13T00:23:19", ++ "request": { ++ "body": { ++ "encoding": "utf-8", ++ "string": "" ++ }, ++ "headers": { ++ "Accept": [ ++ "*/*" ++ ], ++ "Accept-Encoding": [ ++ "gzip, deflate" ++ ], ++ "Connection": [ ++ "keep-alive" ++ ], ++ "User-Agent": [ ++ "python-requests/2.8.1" ++ ] ++ }, ++ "method": "GET", ++ "uri": "https://httpbin.org/cookies/set?cookie0=3Dvalue0" ++ }, ++ "response": { ++ "body": { ++ "encoding": "utf-8", ++ "string": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//= EN\">\n<title>Redirecting...\n

Redirecting...

\n

You shoul= d be redirected automatically to target URL: /cookie= s. If not click the link." ++ }, ++ "headers": { ++ "Access-Control-Allow-Credentials": [ ++ "true" ++ ], ++ "Access-Control-Allow-Origin": [ ++ "*" ++ ], ++ "Connection": [ ++ "keep-alive" ++ ], ++ "Content-Length": [ ++ "223" ++ ], ++ "Content-Type": [ ++ "text/html; charset=3Dutf-8" ++ ], ++ "Date": [ ++ "Fri, 13 Nov 2015 00:23:20 GMT" ++ ], ++ "Location": [ ++ "/cookies" ++ ], ++ "Server": [ ++ "nginx" ++ ], ++ "Set-Cookie": [ ++ "cookie0=3Dvalue0; Path=3D/" ++ ] ++ }, ++ "status": { ++ "code": 302, ++ "message": "FOUND" ++ }, ++ "url": "https://httpbin.org/cookies/set?cookie0=3Dvalue0" ++ } ++ }, ++ { ++ "recorded_at": "2015-11-13T00:23:19", ++ "request": { ++ "body": { ++ "encoding": "utf-8", ++ "string": "" ++ }, ++ "headers": { ++ "Accept": [ ++ "*/*" ++ ], ++ "Accept-Encoding": [ ++ "gzip, deflate" ++ ], ++ "Connection": [ ++ "keep-alive" ++ ], ++ "Cookie": [ ++ "cookie0=3Dvalue0" ++ ], ++ "User-Agent": [ ++ "python-requests/2.8.1" ++ ] ++ }, ++ "method": "GET", ++ "uri": "https://httpbin.org/cookies" ++ }, ++ "response": { ++ "body": { ++ "encoding": null, ++ "string": "{\n \"cookies\": {\n \"cookie0\": \"value0\"\n = }\n}\n" ++ }, ++ "headers": { ++ "Access-Control-Allow-Credentials": [ ++ "true" ++ ], ++ "Access-Control-Allow-Origin": [ ++ "*" ++ ], ++ "Connection": [ ++ "keep-alive" ++ ], ++ "Content-Length": [ ++ "47" ++ ], ++ "Content-Type": [ ++ "application/json" ++ ], ++ "Date": [ ++ "Fri, 13 Nov 2015 00:23:20 GMT" ++ ], ++ "Server": [ ++ "nginx" ++ ] ++ }, ++ "status": { ++ "code": 200, ++ "message": "OK" ++ }, ++ "url": "https://httpbin.org/cookies" ++ } ++ } ++ ], ++ "recorded_with": "betamax/0.5.1" ++} +\ No newline at end of file +diff --git a/tests/cassettes/http2bin_fingerprint.json b/tests/cassettes/h= ttp2bin_fingerprint.json +index fd2fd35..75eb143 100644 +--- a/tests/cassettes/http2bin_fingerprint.json ++++ b/tests/cassettes/http2bin_fingerprint.json +@@ -1 +1,64 @@ +-{"recorded_with": "betamax/0.4.1", "http_interactions": [{"response": {"s= tatus": {"message": "OK", "code": 200}, "body": {"string": "{\n \"args\": = {}, \n \"headers\": {\n \"Accept\": \"*/*\", \n \"Accept-Encoding\":= \"gzip, deflate\", \n \"Connection\": \"keep-alive\", \n \"Host\": \= "http2bin.org\", \n \"User-Agent\": \"python-requests/2.5.3 CPython/2.7.= 9 Darwin/14.1.0\"\n }, \n \"origin\": \"77.99.146.203\", \n \"url\": \"h= ttps://http2bin.org/get\"\n}\n", "encoding": null}, "headers": {"access-con= trol-allow-origin": ["*"], "date": ["Tue, 03 Mar 2015 21:29:55 GMT"], "serv= er": ["h2o/1.0.2-alpha1"], "content-length": ["301"], "access-control-allow= -credentials": ["true"], "connection": ["keep-alive"], "content-type": ["ap= plication/json"]}, "url": "https://http2bin.org/get"}, "recorded_at": "2015= -03-03T21:29:55", "request": {"method": "GET", "uri": "https://http2bin.org= /get", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": [= "*/*"], "Accept-Encoding": ["gzip, deflate"], "Connection": ["keep-alive"],= "User-Agent": ["python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"]}}}]} +\ No newline at end of file ++{ ++ "http_interactions": [ ++ { ++ "recorded_at": "2015-03-03T21:29:55", ++ "request": { ++ "body": { ++ "encoding": "utf-8", ++ "string": "" ++ }, ++ "headers": { ++ "Accept": [ ++ "*/*" ++ ], ++ "Accept-Encoding": [ ++ "gzip, deflate" ++ ], ++ "Connection": [ ++ "keep-alive" ++ ], ++ "User-Agent": [ ++ "python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0" ++ ] ++ }, ++ "method": "GET", ++ "uri": "https://http2bin.org/get" ++ }, ++ "response": { ++ "body": { ++ "encoding": null, ++ "string": "{\n \"args\": {}, \n \"headers\": {\n \"Accept\= ": \"*/*\", \n \"Accept-Encoding\": \"gzip, deflate\", \n \"Connectio= n\": \"keep-alive\", \n \"Host\": \"http2bin.org\", \n \"User-Agent\"= : \"python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0\"\n }, \n \"origin\= ": \"77.99.146.203\", \n \"url\": \"https://http2bin.org/get\"\n}\n" ++ }, ++ "headers": { ++ "access-control-allow-credentials": [ ++ "true" ++ ], ++ "access-control-allow-origin": [ ++ "*" ++ ], ++ "connection": [ ++ "keep-alive" ++ ], ++ "content-length": [ ++ "301" ++ ], ++ "content-type": [ ++ "application/json" ++ ], ++ "date": [ ++ "Tue, 03 Mar 2015 21:29:55 GMT" ++ ], ++ "server": [ ++ "h2o/1.0.2-alpha1" ++ ] ++ }, ++ "status": { ++ "code": 200, ++ "message": "OK" ++ }, ++ "url": "https://http2bin.org/get" ++ } ++ } ++ ], ++ "recorded_with": "betamax/0.4.1" ++} +\ No newline at end of file +diff --git a/tests/cassettes/httpbin_guess_auth_basic.json b/tests/cassett= es/httpbin_guess_auth_basic.json +index db72722..2daca54 100644 +--- a/tests/cassettes/httpbin_guess_auth_basic.json ++++ b/tests/cassettes/httpbin_guess_auth_basic.json +@@ -1 +1,114 @@ +-{"http_interactions": [{"request": {"body": {"string": "", "encoding": "u= tf-8"}, "headers": {"Accept-Encoding": ["gzip, deflate, compress"], "Accept= ": ["*/*"], "User-Agent": ["python-requests/2.2.1 CPython/2.7.6 Linux/3.14.= 1-1-ARCH"]}, "method": "GET", "uri": "http://httpbin.org/basic-auth/user/pa= sswd"}, "response": {"body": {"string": "", "encoding": null}, "headers": {= "content-length": ["0"], "server": ["gunicorn/0.17.4"], "connection": ["kee= p-alive"], "date": ["Sat, 03 May 2014 17:23:06 GMT"], "access-control-allow= -origin": ["*"], "www-authenticate": ["Basic realm=3D\"Fake Realm\""]}, "st= atus": {"message": "UNAUTHORIZED", "code": 401}, "url": "http://httpbin.org= /basic-auth/user/passwd"}, "recorded_at": "2014-05-03T17:23:06"}, {"request= ": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/= *"], "Accept-Encoding": ["gzip, deflate, compress"], "Authorization": ["Bas= ic dXNlcjpwYXNzd2Q=3D"], "User-Agent": ["python-requests/2.2.1 CPython/2.7.= 6 Linux/3.14.1-1-ARCH"]}, "method": "GET", "uri": "http://httpbin.org/basic= -auth/user/passwd"}, "response": {"body": {"string": "{\n \"user\": \"user= \",\n \"authenticated\": true\n}", "encoding": null}, "headers": {"content= -length": ["45"], "server": ["gunicorn/0.17.4"], "connection": ["keep-alive= "], "date": ["Sat, 03 May 2014 17:23:06 GMT"], "access-control-allow-origin= ": ["*"], "content-type": ["application/json"]}, "status": {"message": "OK"= , "code": 200}, "url": "http://httpbin.org/basic-auth/user/passwd"}, "recor= ded_at": "2014-05-03T17:23:06"}], "recorded_with": "betamax/{version}"} +\ No newline at end of file ++{ ++ "http_interactions": [ ++ { ++ "recorded_at": "2014-05-03T17:23:06", ++ "request": { ++ "body": { ++ "encoding": "utf-8", ++ "string": "" ++ }, ++ "headers": { ++ "Accept": [ ++ "*/*" ++ ], ++ "Accept-Encoding": [ ++ "gzip, deflate, compress" ++ ], ++ "User-Agent": [ ++ "python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH" ++ ] ++ }, ++ "method": "GET", ++ "uri": "http://httpbin.org/basic-auth/user/passwd" ++ }, ++ "response": { ++ "body": { ++ "encoding": null, ++ "string": "" ++ }, ++ "headers": { ++ "access-control-allow-origin": [ ++ "*" ++ ], ++ "connection": [ ++ "keep-alive" ++ ], ++ "content-length": [ ++ "0" ++ ], ++ "date": [ ++ "Sat, 03 May 2014 17:23:06 GMT" ++ ], ++ "server": [ ++ "gunicorn/0.17.4" ++ ], ++ "www-authenticate": [ ++ "Basic realm=3D\"Fake Realm\"" ++ ] ++ }, ++ "status": { ++ "code": 401, ++ "message": "UNAUTHORIZED" ++ }, ++ "url": "http://httpbin.org/basic-auth/user/passwd" ++ } ++ }, ++ { ++ "recorded_at": "2014-05-03T17:23:06", ++ "request": { ++ "body": { ++ "encoding": "utf-8", ++ "string": "" ++ }, ++ "headers": { ++ "Accept": [ ++ "*/*" ++ ], ++ "Accept-Encoding": [ ++ "gzip, deflate, compress" ++ ], ++ "Authorization": [ ++ "Basic dXNlcjpwYXNzd2Q=3D" ++ ], ++ "User-Agent": [ ++ "python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH" ++ ] ++ }, ++ "method": "GET", ++ "uri": "http://httpbin.org/basic-auth/user/passwd" ++ }, ++ "response": { ++ "body": { ++ "encoding": null, ++ "string": "{\n \"user\": \"user\",\n \"authenticated\": true\= n}" ++ }, ++ "headers": { ++ "access-control-allow-origin": [ ++ "*" ++ ], ++ "connection": [ ++ "keep-alive" ++ ], ++ "content-length": [ ++ "45" ++ ], ++ "content-type": [ ++ "application/json" ++ ], ++ "date": [ ++ "Sat, 03 May 2014 17:23:06 GMT" ++ ], ++ "server": [ ++ "gunicorn/0.17.4" ++ ] ++ }, ++ "status": { ++ "code": 200, ++ "message": "OK" ++ }, ++ "url": "http://httpbin.org/basic-auth/user/passwd" ++ } ++ } ++ ], ++ "recorded_with": "betamax/{version}" ++} +\ No newline at end of file +diff --git a/tests/cassettes/httpbin_guess_auth_digest.json b/tests/casset= tes/httpbin_guess_auth_digest.json +index 94cf3a3..3b46fac 100644 +--- a/tests/cassettes/httpbin_guess_auth_digest.json ++++ b/tests/cassettes/httpbin_guess_auth_digest.json +@@ -1 +1,123 @@ +-{"http_interactions": [{"request": {"body": {"string": "", "encoding": "u= tf-8"}, "headers": {"Accept-Encoding": ["gzip, deflate, compress"], "Accept= ": ["*/*"], "User-Agent": ["python-requests/2.2.1 CPython/2.7.6 Linux/3.14.= 1-1-ARCH"]}, "method": "GET", "uri": "http://httpbin.org/digest-auth/auth/u= ser/passwd"}, "response": {"body": {"string": "", "encoding": "utf-8"}, "he= aders": {"content-length": ["0"], "set-cookie": ["fake=3Dfake_value"], "ser= ver": ["gunicorn/0.17.4"], "connection": ["keep-alive"], "date": ["Sat, 03 = May 2014 17:23:07 GMT"], "access-control-allow-origin": ["*"], "content-typ= e": ["text/html; charset=3Dutf-8"], "www-authenticate": ["Digest qop=3Dauth= , nonce=3D\"713b4eb6d0ad0ac25d75b50c4d044d5e\", realm=3D\"me@kennethreitz.c= om\", opaque=3D\"d0033bc1960ca78a2fc4497c1e8a8cbd\""]}, "status": {"message= ": "UNAUTHORIZED", "code": 401}, "url": "http://httpbin.org/digest-auth/aut= h/user/passwd"}, "recorded_at": "2014-05-03T17:23:07"}, {"request": {"body"= : {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Cook= ie": ["fake=3Dfake_value"], "Accept-Encoding": ["gzip, deflate, compress"],= "Authorization": ["Digest username=3D\"user\", realm=3D\"me@kennethreitz.c= om\", nonce=3D\"713b4eb6d0ad0ac25d75b50c4d044d5e\", uri=3D\"/digest-auth/au= th/user/passwd\", response=3D\"30276b25ef0031e65e3bccc719031388\", opaque= =3D\"d0033bc1960ca78a2fc4497c1e8a8cbd\", qop=3D\"auth\", nc=3D00000001, cno= nce=3D\"e94e00be64d66bcb\""], "User-Agent": ["python-requests/2.2.1 CPython= /2.7.6 Linux/3.14.1-1-ARCH"]}, "method": "GET", "uri": "http://httpbin.org/= digest-auth/auth/user/passwd"}, "response": {"body": {"string": "{\n \"use= r\": \"user\",\n \"authenticated\": true\n}", "encoding": null}, "headers"= : {"content-length": ["45"], "server": ["gunicorn/0.17.4"], "connection": [= "keep-alive"], "date": ["Sat, 03 May 2014 17:23:07 GMT"], "access-control-a= llow-origin": ["*"], "content-type": ["application/json"]}, "status": {"mes= sage": "OK", "code": 200}, "url": "http://httpbin.org/digest-auth/auth/user= /passwd"}, "recorded_at": "2014-05-03T17:23:07"}], "recorded_with": "betama= x/{version}"} +\ No newline at end of file ++{ ++ "http_interactions": [ ++ { ++ "recorded_at": "2014-05-03T17:23:07", ++ "request": { ++ "body": { ++ "encoding": "utf-8", ++ "string": "" ++ }, ++ "headers": { ++ "Accept": [ ++ "*/*" ++ ], ++ "Accept-Encoding": [ ++ "gzip, deflate, compress" ++ ], ++ "User-Agent": [ ++ "python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH" ++ ] ++ }, ++ "method": "GET", ++ "uri": "http://httpbin.org/digest-auth/auth/user/passwd" ++ }, ++ "response": { ++ "body": { ++ "encoding": "utf-8", ++ "string": "" ++ }, ++ "headers": { ++ "access-control-allow-origin": [ ++ "*" ++ ], ++ "connection": [ ++ "keep-alive" ++ ], ++ "content-length": [ ++ "0" ++ ], ++ "content-type": [ ++ "text/html; charset=3Dutf-8" ++ ], ++ "date": [ ++ "Sat, 03 May 2014 17:23:07 GMT" ++ ], ++ "server": [ ++ "gunicorn/0.17.4" ++ ], ++ "set-cookie": [ ++ "fake=3Dfake_value" ++ ], ++ "www-authenticate": [ ++ "Digest qop=3Dauth, nonce=3D\"713b4eb6d0ad0ac25d75b50c4d044d5= e\", realm=3D\"me@kennethreitz.com\", opaque=3D\"d0033bc1960ca78a2fc4497c1e= 8a8cbd\"" ++ ] ++ }, ++ "status": { ++ "code": 401, ++ "message": "UNAUTHORIZED" ++ }, ++ "url": "http://httpbin.org/digest-auth/auth/user/passwd" ++ } ++ }, ++ { ++ "recorded_at": "2014-05-03T17:23:07", ++ "request": { ++ "body": { ++ "encoding": "utf-8", ++ "string": "" ++ }, ++ "headers": { ++ "Accept": [ ++ "*/*" ++ ], ++ "Accept-Encoding": [ ++ "gzip, deflate, compress" ++ ], ++ "Authorization": [ ++ "Digest username=3D\"user\", realm=3D\"me@kennethreitz.com\",= nonce=3D\"713b4eb6d0ad0ac25d75b50c4d044d5e\", uri=3D\"/digest-auth/auth/us= er/passwd\", response=3D\"30276b25ef0031e65e3bccc719031388\", opaque=3D\"d0= 033bc1960ca78a2fc4497c1e8a8cbd\", qop=3D\"auth\", nc=3D00000001, cnonce=3D\= "e94e00be64d66bcb\"" ++ ], ++ "Cookie": [ ++ "fake=3Dfake_value" ++ ], ++ "User-Agent": [ ++ "python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH" ++ ] ++ }, ++ "method": "GET", ++ "uri": "http://httpbin.org/digest-auth/auth/user/passwd" ++ }, ++ "response": { ++ "body": { ++ "encoding": null, ++ "string": "{\n \"user\": \"user\",\n \"authenticated\": true\= n}" ++ }, ++ "headers": { ++ "access-control-allow-origin": [ ++ "*" ++ ], ++ "connection": [ ++ "keep-alive" ++ ], ++ "content-length": [ ++ "45" ++ ], ++ "content-type": [ ++ "application/json" ++ ], ++ "date": [ ++ "Sat, 03 May 2014 17:23:07 GMT" ++ ], ++ "server": [ ++ "gunicorn/0.17.4" ++ ] ++ }, ++ "status": { ++ "code": 200, ++ "message": "OK" ++ }, ++ "url": "http://httpbin.org/digest-auth/auth/user/passwd" ++ } ++ } ++ ], ++ "recorded_with": "betamax/{version}" ++} +\ No newline at end of file +diff --git a/tests/cassettes/httpbin_guess_auth_none.json b/tests/cassette= s/httpbin_guess_auth_none.json +index 2ebbb0f..4ddfbc5 100644 +--- a/tests/cassettes/httpbin_guess_auth_none.json ++++ b/tests/cassettes/httpbin_guess_auth_none.json +@@ -1 +1,58 @@ +-{"http_interactions": [{"request": {"body": {"string": "", "encoding": "u= tf-8"}, "headers": {"Accept-Encoding": ["gzip, deflate, compress"], "Accept= ": ["*/*"], "User-Agent": ["python-requests/2.2.1 CPython/2.7.6 Linux/3.14.= 1-1-ARCH"]}, "method": "GET", "uri": "http://httpbin.org/get?a=3D1"}, "resp= onse": {"body": {"string": "{\n \"args\": {\n \"a\": \"1\"\n },\n \"u= rl\": \"http://httpbin.org/get?a=3D1\",\n \"headers\": {\n \"Connection= \": \"close\",\n \"Host\": \"httpbin.org\",\n \"Accept-Encoding\": \"= gzip, deflate, compress\",\n \"X-Request-Id\": \"f9f71f12-5705-4a0f-85d4= -3d63f9140b1f\",\n \"User-Agent\": \"python-requests/2.2.1 CPython/2.7.6= Linux/3.14.1-1-ARCH\",\n \"Accept\": \"*/*\"\n },\n \"origin\": \"62.= 47.252.115\"\n}", "encoding": null}, "headers": {"content-length": ["381"],= "server": ["gunicorn/0.17.4"], "connection": ["keep-alive"], "date": ["Sat= , 03 May 2014 17:23:07 GMT"], "access-control-allow-origin": ["*"], "conten= t-type": ["application/json"]}, "status": {"message": "OK", "code": 200}, "= url": "http://httpbin.org/get?a=3D1"}, "recorded_at": "2014-05-03T17:23:07"= }], "recorded_with": "betamax/{version}"} +\ No newline at end of file ++{ ++ "http_interactions": [ ++ { ++ "recorded_at": "2014-05-03T17:23:07", ++ "request": { ++ "body": { ++ "encoding": "utf-8", ++ "string": "" ++ }, ++ "headers": { ++ "Accept": [ ++ "*/*" ++ ], ++ "Accept-Encoding": [ ++ "gzip, deflate, compress" ++ ], ++ "User-Agent": [ ++ "python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH" ++ ] ++ }, ++ "method": "GET", ++ "uri": "http://httpbin.org/get?a=3D1" ++ }, ++ "response": { ++ "body": { ++ "encoding": null, ++ "string": "{\n \"args\": {\n \"a\": \"1\"\n },\n \"url\":= \"http://httpbin.org/get?a=3D1\",\n \"headers\": {\n \"Connection\": \= "close\",\n \"Host\": \"httpbin.org\",\n \"Accept-Encoding\": \"gzip,= deflate, compress\",\n \"X-Request-Id\": \"f9f71f12-5705-4a0f-85d4-3d63= f9140b1f\",\n \"User-Agent\": \"python-requests/2.2.1 CPython/2.7.6 Linu= x/3.14.1-1-ARCH\",\n \"Accept\": \"*/*\"\n },\n \"origin\": \"62.47.25= 2.115\"\n}" ++ }, ++ "headers": { ++ "access-control-allow-origin": [ ++ "*" ++ ], ++ "connection": [ ++ "keep-alive" ++ ], ++ "content-length": [ ++ "381" ++ ], ++ "content-type": [ ++ "application/json" ++ ], ++ "date": [ ++ "Sat, 03 May 2014 17:23:07 GMT" ++ ], ++ "server": [ ++ "gunicorn/0.17.4" ++ ] ++ }, ++ "status": { ++ "code": 200, ++ "message": "OK" ++ }, ++ "url": "http://httpbin.org/get?a=3D1" ++ } ++ } ++ ], ++ "recorded_with": "betamax/{version}" ++} +\ No newline at end of file +diff --git a/tests/cassettes/klevas_vu_lt_ssl3.json b/tests/cassettes/klev= as_vu_lt_ssl3.json +index 3c667ba..1608e48 100644 +--- a/tests/cassettes/klevas_vu_lt_ssl3.json ++++ b/tests/cassettes/klevas_vu_lt_ssl3.json +@@ -1 +1,35 @@ +-{"http_interactions": [{"request": {"body": "", "headers": {"Accept-Encod= ing": "gzip, deflate, compress", "Accept": "*/*", "User-Agent": "python-req= uests/2.1.0 CPython/2.7.3 Linux/3.2.29"}, "method": "GET", "uri": "https://= klevas.vu.lt/"}, "response": {"body": {"string": "\n\nKlevas\n= \n\n\n\n\n\n", "encoding": "ISO-8= 859-1"}, "headers": {"content-length": "204", "accept-ranges": "bytes", "se= rver": "Oracle-Application-Server-10g/10.1.3.1.0 Oracle-HTTP-Server", "last= -modified": "Wed, 13 Apr 2011 05:00:23 GMT", "etag": "\"7f9b-cc-4da52de7\""= , "date": "Sun, 05 Jan 2014 01:35:40 GMT", "content-type": "text/html"}, "u= rl": "https://klevas.vu.lt/", "status_code": 200}, "recorded_at": "2014-01-= 05T01:34:40"}], "recorded_with": "betamax"} +\ No newline at end of file ++{ ++ "http_interactions": [ ++ { ++ "recorded_at": "2014-01-05T01:34:40", ++ "request": { ++ "body": "", ++ "headers": { ++ "Accept": "*/*", ++ "Accept-Encoding": "gzip, deflate, compress", ++ "User-Agent": "python-requests/2.1.0 CPython/2.7.3 Linux/3.2.29" ++ }, ++ "method": "GET", ++ "uri": "https://klevas.vu.lt/" ++ }, ++ "response": { ++ "body": { ++ "encoding": "ISO-8859-1", ++ "string": "\n\nKlevas\n\n\n