text: import mock
  from pytest import raises
  from requests import Request
  from requests.exceptions import ConnectionError
  
  from httpie import ExitStatus
  from httpie.core import main
  from utils import HTTP_OK, http
  
  
  error_msg = None
  
  
  @mock.patch('httpie.core.program')
  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(['http', '--ignore-stdin', 'www.google.com'], custom_log_error=error)
      assert ret == ExitStatus.ERROR
      assert error_msg == (
          'ConnectionError: '
          'Connection aborted while doing a GET request to URL: '
          'http://www.google.com')
  
  
  @mock.patch('httpie.core.program')
  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):
          main(['http', '--ignore-stdin', '--traceback', 'www.google.com'])
  
  
  def test_max_headers_limit(httpbin_both):
      with raises(ConnectionError) as e:
          http('--max-headers=1', httpbin_both + '/get')
      assert 'got more than 1 headers' in str(e.value)
  
  
  def test_max_headers_no_limit(httpbin_both):
      assert HTTP_OK in http('--max-headers=0', httpbin_both + '/get')
  