diff --git a/Pipfile b/Pipfile index 26f3e5e5..3141511b 100644 --- a/Pipfile +++ b/Pipfile @@ -25,3 +25,11 @@ white = {version = "*"} "rfc3986" = "*" twisted = {extras = ["tls"]} httpcore = {git = "https://github.com/encode/httpcore.git"} +trio = "*" + +[dev-packages] +requests = {path = ".",editable = true,extras = ["test,socks"]} +black = "*" + +[pipenv] +allow_prereleases = true diff --git a/Pipfile.lock b/Pipfile.lock index 1b11a83f..e51aaa6f 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "4a7ac91f13df9207ddbbc6d09fd1f19b7cb87892ac3e029a2f84fc26727656b6" + "sha256": "9408a3aa35502af3b51d3bc6f5d5f3746accd9b6c306b9a994d34ae58c0598da" }, "pipfile-spec": 6, "requires": {}, @@ -36,6 +36,13 @@ ], "version": "==0.24.0" }, + "async-generator": { + "hashes": [ + "sha256:01c7bf666359b4967d2cda0000cc2e4af16a0ae098cbffcb8472fb9e8ad6585b", + "sha256:6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144" + ], + "version": "==1.10" + }, "atomicwrites": { "hashes": [ "sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4", @@ -149,6 +156,7 @@ "sha256:e1ff2748c84d97b065cc95429814cdba39bcbd77c9c85c89344b317dc0d9cbff", "sha256:ed851c75d1e0e043cbf5ca9a8e1b13c4c90f3fbd863dacb01c0808e2b5204201" ], + "markers": "os_name == 'nt'", "version": "==1.12.3" }, "chardet": { @@ -190,39 +198,37 @@ }, "coverage": { "hashes": [ - "sha256:3684fabf6b87a369017756b551cef29e505cb155ddb892a7a29277b978da88b9", - "sha256:39e088da9b284f1bd17c750ac672103779f7954ce6125fd4382134ac8d152d74", - "sha256:3c205bc11cc4fcc57b761c2da73b9b72a59f8d5ca89979afb0c1c6f9e53c7390", - "sha256:465ce53a8c0f3a7950dfb836438442f833cf6663d407f37d8c52fe7b6e56d7e8", - "sha256:48020e343fc40f72a442c8a1334284620f81295256a6b6ca6d8aa1350c763bbe", - "sha256:5296fc86ab612ec12394565c500b412a43b328b3907c0d14358950d06fd83baf", - "sha256:5f61bed2f7d9b6a9ab935150a6b23d7f84b8055524e7be7715b6513f3328138e", - "sha256:68a43a9f9f83693ce0414d17e019daee7ab3f7113a70c79a3dd4c2f704e4d741", - "sha256:6b8033d47fe22506856fe450470ccb1d8ba1ffb8463494a15cfc96392a288c09", - "sha256:7ad7536066b28863e5835e8cfeaa794b7fe352d99a8cded9f43d1161be8e9fbd", - "sha256:7bacb89ccf4bedb30b277e96e4cc68cd1369ca6841bde7b005191b54d3dd1034", - "sha256:839dc7c36501254e14331bcb98b27002aa415e4af7ea039d9009409b9d2d5420", - "sha256:8f9a95b66969cdea53ec992ecea5406c5bd99c9221f539bca1e8406b200ae98c", - "sha256:932c03d2d565f75961ba1d3cec41ddde00e162c5b46d03f7423edcb807734eab", - "sha256:988529edadc49039d205e0aa6ce049c5ccda4acb2d6c3c5c550c17e8c02c05ba", - "sha256:998d7e73548fe395eeb294495a04d38942edb66d1fa61eb70418871bc621227e", - "sha256:9de60893fb447d1e797f6bf08fdf0dbcda0c1e34c1b06c92bd3a363c0ea8c609", - "sha256:9e80d45d0c7fcee54e22771db7f1b0b126fb4a6c0a2e5afa72f66827207ff2f2", - "sha256:a545a3dfe5082dc8e8c3eb7f8a2cf4f2870902ff1860bd99b6198cfd1f9d1f49", - "sha256:a5d8f29e5ec661143621a8f4de51adfb300d7a476224156a39a392254f70687b", - "sha256:aca06bfba4759bbdb09bf52ebb15ae20268ee1f6747417837926fae990ebc41d", - "sha256:bb23b7a6fd666e551a3094ab896a57809e010059540ad20acbeec03a154224ce", - "sha256:bfd1d0ae7e292105f29d7deaa9d8f2916ed8553ab9d5f39ec65bcf5deadff3f9", - "sha256:c62ca0a38958f541a73cf86acdab020c2091631c137bd359c4f5bddde7b75fd4", - "sha256:c709d8bda72cf4cd348ccec2a4881f2c5848fd72903c185f363d361b2737f773", - "sha256:c968a6aa7e0b56ecbd28531ddf439c2ec103610d3e2bf3b75b813304f8cb7723", - "sha256:df785d8cb80539d0b55fd47183264b7002077859028dfe3070cf6359bf8b2d9c", - "sha256:f406628ca51e0ae90ae76ea8398677a921b36f0bd71aab2099dfed08abd0322f", - "sha256:f46087bbd95ebae244a0eda01a618aff11ec7a069b15a3ef8f6b520db523dcf1", - "sha256:f8019c5279eb32360ca03e9fac40a12667715546eed5c5eb59eb381f2f501260", - "sha256:fc5f4d209733750afd2714e9109816a29500718b32dd9a5db01c0cb3a019b96a" + "sha256:029c69deaeeeae1b15bc6c59f0ffa28aa8473721c614a23f2c2976dec245cd12", + "sha256:02abbbebc6e9d5abe13cd28b5e963dedb6ffb51c146c916d17b18f141acd9947", + "sha256:1bbfe5b82a3921d285e999c6d256c1e16b31c554c29da62d326f86c173d30337", + "sha256:210c02f923df33a8d0e461c86fdcbbb17228ff4f6d92609fc06370a98d283c2d", + "sha256:2d0807ba935f540d20b49d5bf1c0237b90ce81e133402feda906e540003f2f7a", + "sha256:35d7a013874a7c927ce997350d314144ffc5465faf787bb4e46e6c4f381ef562", + "sha256:3636f9d0dcb01aed4180ef2e57a4e34bb4cac3ecd203c2a23db8526d86ab2fb4", + "sha256:42f4be770af2455a75e4640f033a82c62f3fb0d7a074123266e143269d7010ef", + "sha256:48440b25ba6cda72d4c638f3a9efa827b5b87b489c96ab5f4ff597d976413156", + "sha256:4dac8dfd1acf6a3ac657475dfdc66c621f291b1b7422a939cc33c13ac5356473", + "sha256:4e8474771c69c2991d5eab65764289a7dd450bbea050bc0ebb42b678d8222b42", + "sha256:551f10ddfeff56a1325e5a34eff304c5892aa981fd810babb98bfee77ee2fb17", + "sha256:5b104982f1809c1577912519eb249f17d9d7e66304ad026666cb60a5ef73309c", + "sha256:5c62aef73dfc87bfcca32cee149a1a7a602bc74bac72223236b0023543511c88", + "sha256:633151f8d1ad9467b9f7e90854a7f46ed8f2919e8bc7d98d737833e8938fc081", + "sha256:772207b9e2d5bf3f9d283b88915723e4e92d9a62c83f44ec92b9bd0cd685541b", + "sha256:7d5e02f647cd727afc2659ec14d4d1cc0508c47e6cfb07aea33d7aa9ca94d288", + "sha256:a9798a4111abb0f94584000ba2a2c74841f2cfe5f9254709756367aabbae0541", + "sha256:b38ea741ab9e35bfa7015c93c93bbd6a1623428f97a67083fc8ebd366238b91f", + "sha256:b6a5478c904236543c0347db8a05fac6fc0bd574c870e7970faa88e1d9890044", + "sha256:c6248bfc1de36a3844685a2e10ba17c18119ba6252547f921062a323fb31bff1", + "sha256:c705ab445936457359b1424ef25ccc0098b0491b26064677c39f1d14a539f056", + "sha256:d95a363d663ceee647291131dbd213af258df24f41350246842481ec3709bd33", + "sha256:e27265eb80cdc5dab55a40ef6f890e04ecc618649ad3da5265f128b141f93f78", + "sha256:ebc276c9cb5d917bd2ae959f84ffc279acafa9c9b50b0fa436ebb70bbe2166ea", + "sha256:f4d229866d030863d0fe3bf297d6d11e6133ca15bbb41ed2534a8b9a3d6bd061", + "sha256:f95675bd88b51474d4fe5165f3266f419ce754ffadfb97f10323931fa9ac95e5", + "sha256:f95bc54fb6d61b9f9ff09c4ae8ff6a3f5edc937cda3ca36fc937302a7c152bf1", + "sha256:fd0f6be53de40683584e5331c341e65a679dbe5ec489a0697cec7c2ef1a48cda" ], - "version": "==4.5.3" + "version": "==5.0a4" }, "cryptography": { "hashes": [ @@ -478,6 +484,13 @@ ], "version": "==0.4.1" }, + "outcome": { + "hashes": [ + "sha256:7357af9ba2a08fdff8c742818909c5d146fc1fe75aee4bddadaa4f8ad726d262", + "sha256:9d58c05db36a900ce60c6da0167d76e28869f64b338d60fa3a61841cfa54ac71" + ], + "version": "==1.0.0" + }, "pluggy": { "hashes": [ "sha256:19ecf9ce9db2fce065a7a0586e07cfb4ac8614fe96edf628a264b1c70116cf8f", @@ -663,6 +676,13 @@ ], "version": "==1.12.0" }, + "sniffio": { + "hashes": [ + "sha256:20ed6d5b46f8ae136d00b9dcb807615d83ed82ceea6b2058cecb696765246da5", + "sha256:8e3810100f69fe0edd463d02ad407112542a11ffdc29f67db2bf3771afb87a21" + ], + "version": "==1.1.0" + }, "snowballstemmer": { "hashes": [ "sha256:919f26a68b2c17a7634da993d91339e288964f93c274f1343e3bbbe2096e1128", @@ -670,6 +690,13 @@ ], "version": "==1.2.1" }, + "sortedcontainers": { + "hashes": [ + "sha256:974e9a32f56b17c1bac2aebd9dcf197f3eb9cd30553c5852a3187ad162e1a03a", + "sha256:d9e96492dd51fae31e60837736b38fe42a187b5404c16606ff7ee7cd582d4c60" + ], + "version": "==2.1.0" + }, "sphinx": { "hashes": [ "sha256:11f271e7a9398385ed730e90f0bb41dc3815294bdcd395b46ed2d033bc2e7d87", @@ -693,6 +720,14 @@ "index": "pypi", "version": "==3.6.1" }, + "trio": { + "hashes": [ + "sha256:3796774aedbf5be581c68f98c79b565654876de6e9a01c6a95e3ec6cd4e4b4c3", + "sha256:b0c03d312c300a947e54e204be88255992434e824374b7d3cc886876dab9a542" + ], + "index": "pypi", + "version": "==0.11.0" + }, "twisted": { "extras": [ "tls" @@ -800,5 +835,84 @@ "version": "==4.6.0" } }, - "develop": {} + "develop": { + "appdirs": { + "hashes": [ + "sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92", + "sha256:d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e" + ], + "version": "==1.4.3" + }, + "attrs": { + "hashes": [ + "sha256:69c0dbf2ed392de1cb5ec704444b08a5ef81680a61cb899dc08127123af36a79", + "sha256:f0b870f674851ecbfbbbd364d6b5cbdff9dcedbc7f3f5e18a6891057f21fe399" + ], + "version": "==19.1.0" + }, + "black": { + "hashes": [ + "sha256:09a9dcb7c46ed496a9850b76e4e825d6049ecd38b611f1224857a79bd985a8cf", + "sha256:68950ffd4d9169716bcb8719a56c07a2f4485354fec061cdd5910aa07369731c" + ], + "index": "pypi", + "version": "==19.3b0" + }, + "certifi": { + "hashes": [ + "sha256:59b7658e26ca9c7339e00f8f4636cdfe59d34fa37b9b04f6f9e9926b3cece1a5", + "sha256:b26104d6835d1f5e49452a26eb2ff87fe7090b89dfcaee5ea2212697e1e1d7ae" + ], + "version": "==2019.3.9" + }, + "chardet": { + "hashes": [ + "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", + "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" + ], + "version": "==3.0.4" + }, + "click": { + "hashes": [ + "sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13", + "sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7" + ], + "version": "==7.0" + }, + "idna": { + "hashes": [ + "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407", + "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c" + ], + "version": "==2.8" + }, + "pysocks": { + "hashes": [ + "sha256:3fe52c55890a248676fd69dc9e3c4e811718b777834bcaab7a8125cf9deac672" + ], + "index": "pypi", + "version": "==1.6.8" + }, + "requests": { + "editable": true, + "extras": [ + "socks" + ], + "path": "." + }, + "toml": { + "hashes": [ + "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c", + "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e" + ], + "version": "==0.10.0" + }, + "urllib3": { + "hashes": [ + "sha256:4c291ca23bbb55c76518905869ef34bdd5f0e46af7afe6861e8375643ffee1a0", + "sha256:9a247273df709c4fedb38c711e44292304f73f39ab01beda9f6b9fc375669ac3" + ], + "version": "==1.24.2" + } + } } diff --git a/setup.py b/setup.py index 260d1b3a..2a09ce25 100644 --- a/setup.py +++ b/setup.py @@ -37,8 +37,8 @@ class PyTest(Command): def run(self): import pytest - # errno = pytest.main(["-n", "auto"]) - errno = pytest.main([]) + errno = pytest.main(["-n", "auto"]) + # errno = pytest.main([]) sys.exit(errno) diff --git a/tests/test_hooks.py b/tests/test_hooks.py index b8e7f36e..b0939dcb 100644 --- a/tests/test_hooks.py +++ b/tests/test_hooks.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import pytest -from requests3 import hooks +from requests3 import _hooks as hooks def hook(value): @@ -9,13 +9,11 @@ def hook(value): @pytest.mark.parametrize( - 'hooks_list, result', ((hook, 'ata'), ([hook, lambda x: None, hook], 'ta')) + "hooks_list, result", ((hook, "ata"), ([hook, lambda x: None, hook], "ta")) ) def test_hooks(hooks_list, result): - assert hooks.dispatch_hook( - 'response', {'response': hooks_list}, 'Data' - ) == result + assert hooks.dispatch_hook("response", {"response": hooks_list}, "Data") == result def test_default_hooks(): - assert hooks.default_hooks() == {'response': []} + assert hooks.default_hooks() == {"response": []} diff --git a/tests/test_requests.py b/tests/test_requests.py index cd84a05f..786ac884 100644 --- a/tests/test_requests.py +++ b/tests/test_requests.py @@ -12,15 +12,15 @@ import warnings import re import io -import requests +import requests3 import pytest import pytest_httpbin -from requests3._adapters import HTTPAdapter +from requests3.http_adapters import HTTPAdapter from requests3.http_auth import HTTPDigestAuth, _basic_auth_str from requests3._basics import ( Morsel, cookielib, getproxies, str, urlparse, builtin_str ) -from requests3.http_cookies import ( cookiejar_from_dict, morsel_to_cookie) +from requests3.http_cookies import (cookiejar_from_dict, morsel_to_cookie) from requests3.exceptions import ( ConnectionError, ConnectTimeout, @@ -38,14 +38,14 @@ from requests3.exceptions import ( SSLError, ) from requests3.http_models import PreparedRequest -from requests3.http_structures import CaseInsensitiveDict +from requests3._structures import CaseInsensitiveDict from requests3.http_sessions import SessionRedirectMixin from requests3.http_models import urlencode from requests3._hooks import default_hooks from requests3.http_utils import DEFAULT_CA_BUNDLE_PATH from .compat import StringIO, u -from .http_utils import override_environ +from .utils import override_environ from urllib3.util import Timeout as Urllib3Timeout @@ -75,7 +75,7 @@ try: except ImportError: HAS_MODERN_SSL = False try: - requests.pyopenssl + requests3.pyopenssl HAS_PYOPENSSL = True except AttributeError: HAS_PYOPENSSL = False @@ -509,7 +509,7 @@ class TestRequests: cj = cookiejar_from_dict({'foo': 'bar'}, cookielib.CookieJar()) s.cookies = cookiejar_from_dict({'cookie': 'tasty'}) # Prepare request without using Session - req = requests.Request('GET', httpbin('headers'), cookies=cj) + req = requests3.Request('GET', httpbin('headers'), cookies=cj) prep_req = req.prepare() # Send request and simulate redirect resp = s.send(prep_req) @@ -521,7 +521,7 @@ class TestRequests: assert isinstance(prep_req._cookies, cookielib.CookieJar) assert isinstance(resp.request._cookies, cookielib.CookieJar) assert not isinstance( - resp.request._cookies, requests.cookies.RequestsCookieJar + resp.request._cookies, requests3.cookies.RequestsCookieJar ) cookies = {} for c in resp.request._cookies: @@ -530,7 +530,7 @@ class TestRequests: assert cookies['cookie'] == 'tasty' @pytest.mark.parametrize( - 'jar', (requests.cookies.RequestsCookieJar(), cookielib.CookieJar()) + 'jar', (requests3.http_cookies.RequestsCookieJar(), cookielib.CookieJar()) ) def test_custom_cookie_policy_persistence(self, s, httpbin, jar): """Verify a custom CookiePolicy is propagated on each session request.""" diff --git a/tests/test_utils.py b/tests/test_utils.py index 9e1c44d1..11440cfc 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -7,10 +7,10 @@ import zipfile from collections import deque import pytest -from requests3 import basics -from requests3.cookies import RequestsCookieJar -from requests3.structures import CaseInsensitiveDict -from requests3.utils import ( +from requests3 import _basics as basics +from requests3.http_cookies import RequestsCookieJar +from requests3._structures import CaseInsensitiveDict +from requests3.http_utils import ( address_in_network, dotted_netmask, get_auth_from_url,