You've already forked httpie-cli
mirror of
https://github.com/httpie/cli.git
synced 2025-06-25 00:46:53 +02:00
Increase test coverage for error handling
This commit is contained in:
48
tests/test_errors.py
Normal file
48
tests/test_errors.py
Normal file
@ -0,0 +1,48 @@
|
||||
import mock
|
||||
from pytest import raises
|
||||
from requests import Request, Timeout
|
||||
from requests.exceptions import ConnectionError
|
||||
|
||||
from httpie.core import main
|
||||
|
||||
error_msg = None
|
||||
|
||||
|
||||
@mock.patch('httpie.core.get_response')
|
||||
def test_error(get_response):
|
||||
def error(msg, *args, **kwargs):
|
||||
global error_msg
|
||||
error_msg = msg % args
|
||||
|
||||
exc = ConnectionError('Connection aborted')
|
||||
exc.request = Request(method='GET', url='http://www.google.com')
|
||||
get_response.side_effect = exc
|
||||
ret = main(['--ignore-stdin', 'www.google.com'], error=error)
|
||||
assert ret == 1
|
||||
assert error_msg == (
|
||||
'ConnectionError: '
|
||||
'Connection aborted while doing GET request to URL: '
|
||||
'http://www.google.com')
|
||||
|
||||
|
||||
@mock.patch('httpie.core.get_response')
|
||||
def test_error_traceback(get_response):
|
||||
exc = ConnectionError('Connection aborted')
|
||||
exc.request = Request(method='GET', url='http://www.google.com')
|
||||
get_response.side_effect = exc
|
||||
with raises(ConnectionError):
|
||||
ret = main(['--ignore-stdin', '--traceback', 'www.google.com'])
|
||||
|
||||
|
||||
@mock.patch('httpie.core.get_response')
|
||||
def test_timeout(get_response):
|
||||
def error(msg, *args, **kwargs):
|
||||
global error_msg
|
||||
error_msg = msg % args
|
||||
|
||||
exc = Timeout('Request timed out')
|
||||
exc.request = Request(method='GET', url='http://www.google.com')
|
||||
get_response.side_effect = exc
|
||||
ret = main(['--ignore-stdin', 'www.google.com'], error=error)
|
||||
assert ret == 2
|
||||
assert error_msg == 'Request timed out (30s).'
|
Reference in New Issue
Block a user