mirror of
https://github.com/httpie/cli.git
synced 2025-02-01 12:57:57 +02:00
Fix --offline --chunked
, add more tests
This commit is contained in:
parent
32d8b481e9
commit
2f8d330b57
@ -266,6 +266,10 @@ def make_request_kwargs(
|
|||||||
if base_headers:
|
if base_headers:
|
||||||
headers.update(base_headers)
|
headers.update(base_headers)
|
||||||
headers.update(args.headers)
|
headers.update(args.headers)
|
||||||
|
if args.offline and args.chunked and 'Transfer-Encoding' not in headers:
|
||||||
|
# When online, we let requests set the header instead to be able more
|
||||||
|
# easily verify chunking is taking place.
|
||||||
|
headers['Transfer-Encoding'] = 'chunked'
|
||||||
headers = finalize_headers(headers)
|
headers = finalize_headers(headers)
|
||||||
|
|
||||||
if (args.form and files) or args.multipart:
|
if (args.form and files) or args.multipart:
|
||||||
|
@ -183,63 +183,3 @@ def test_json_input_preserve_order(httpbin_both):
|
|||||||
assert HTTP_OK in r
|
assert HTTP_OK in r
|
||||||
assert r.json['data'] == \
|
assert r.json['data'] == \
|
||||||
'{"order": {"map": {"1": "first", "2": "second"}}}'
|
'{"order": {"map": {"1": "first", "2": "second"}}}'
|
||||||
|
|
||||||
|
|
||||||
def test_offline():
|
|
||||||
r = http(
|
|
||||||
'--offline',
|
|
||||||
'https://this-should.never-resolve/foo',
|
|
||||||
)
|
|
||||||
assert 'GET /foo' in r
|
|
||||||
|
|
||||||
|
|
||||||
def test_offline_form():
|
|
||||||
r = http(
|
|
||||||
'--offline',
|
|
||||||
'--form',
|
|
||||||
'https://this-should.never-resolve/foo',
|
|
||||||
'foo=bar'
|
|
||||||
)
|
|
||||||
assert 'POST /foo' in r
|
|
||||||
assert 'foo=bar' in r
|
|
||||||
|
|
||||||
|
|
||||||
def test_offline_json():
|
|
||||||
r = http(
|
|
||||||
'--offline',
|
|
||||||
'https://this-should.never-resolve/foo',
|
|
||||||
'foo=bar'
|
|
||||||
)
|
|
||||||
assert 'POST /foo' in r
|
|
||||||
assert r.json == {'foo': 'bar'}
|
|
||||||
|
|
||||||
|
|
||||||
def test_offline_multipart():
|
|
||||||
r = http(
|
|
||||||
'--offline',
|
|
||||||
'--multipart',
|
|
||||||
'https://this-should.never-resolve/foo',
|
|
||||||
'foo=bar'
|
|
||||||
)
|
|
||||||
assert 'POST /foo' in r
|
|
||||||
assert 'name="foo"' in r
|
|
||||||
|
|
||||||
|
|
||||||
def test_offline_from_file():
|
|
||||||
r = http(
|
|
||||||
'--offline',
|
|
||||||
'https://this-should.never-resolve/foo',
|
|
||||||
f'@{FILE_PATH_ARG}'
|
|
||||||
)
|
|
||||||
assert 'POST /foo' in r
|
|
||||||
assert FILE_CONTENT in r
|
|
||||||
|
|
||||||
|
|
||||||
def test_offline_download():
|
|
||||||
"""Absence of response should be handled gracefully with --download"""
|
|
||||||
r = http(
|
|
||||||
'--offline',
|
|
||||||
'--download',
|
|
||||||
'https://this-should.never-resolve/foo',
|
|
||||||
)
|
|
||||||
assert 'GET /foo' in r
|
|
||||||
|
75
tests/test_offline.py
Normal file
75
tests/test_offline.py
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
from fixtures import FILE_CONTENT, FILE_PATH_ARG
|
||||||
|
from utils import http
|
||||||
|
|
||||||
|
|
||||||
|
def test_offline():
|
||||||
|
r = http(
|
||||||
|
'--offline',
|
||||||
|
'https://this-should.never-resolve/foo',
|
||||||
|
)
|
||||||
|
assert 'GET /foo' in r
|
||||||
|
|
||||||
|
|
||||||
|
def test_offline_form():
|
||||||
|
r = http(
|
||||||
|
'--offline',
|
||||||
|
'--form',
|
||||||
|
'https://this-should.never-resolve/foo',
|
||||||
|
'foo=bar'
|
||||||
|
)
|
||||||
|
assert 'POST /foo' in r
|
||||||
|
assert 'foo=bar' in r
|
||||||
|
|
||||||
|
|
||||||
|
def test_offline_json():
|
||||||
|
r = http(
|
||||||
|
'--offline',
|
||||||
|
'https://this-should.never-resolve/foo',
|
||||||
|
'foo=bar'
|
||||||
|
)
|
||||||
|
assert 'POST /foo' in r
|
||||||
|
assert r.json == {'foo': 'bar'}
|
||||||
|
|
||||||
|
|
||||||
|
def test_offline_multipart():
|
||||||
|
r = http(
|
||||||
|
'--offline',
|
||||||
|
'--multipart',
|
||||||
|
'https://this-should.never-resolve/foo',
|
||||||
|
'foo=bar'
|
||||||
|
)
|
||||||
|
assert 'POST /foo' in r
|
||||||
|
assert 'name="foo"' in r
|
||||||
|
|
||||||
|
|
||||||
|
def test_offline_from_file():
|
||||||
|
r = http(
|
||||||
|
'--offline',
|
||||||
|
'https://this-should.never-resolve/foo',
|
||||||
|
f'@{FILE_PATH_ARG}'
|
||||||
|
)
|
||||||
|
assert 'POST /foo' in r
|
||||||
|
assert FILE_CONTENT in r
|
||||||
|
|
||||||
|
|
||||||
|
def test_offline_chunked():
|
||||||
|
r = http(
|
||||||
|
'--offline',
|
||||||
|
'--chunked',
|
||||||
|
'--form',
|
||||||
|
'https://this-should.never-resolve/foo',
|
||||||
|
'hello=world'
|
||||||
|
)
|
||||||
|
assert 'POST /foo' in r
|
||||||
|
assert 'Transfer-Encoding: chunked' in r, r
|
||||||
|
assert 'hello=world' in r
|
||||||
|
|
||||||
|
|
||||||
|
def test_offline_download():
|
||||||
|
"""Absence of response should be handled gracefully with --download"""
|
||||||
|
r = http(
|
||||||
|
'--offline',
|
||||||
|
'--download',
|
||||||
|
'https://this-should.never-resolve/foo',
|
||||||
|
)
|
||||||
|
assert 'GET /foo' in r
|
Loading…
x
Reference in New Issue
Block a user