mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-10-06 00:02:08 -04:00
59 lines
1.6 KiB
Ruby
59 lines
1.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require_relative "test_helper"
|
|
|
|
class ErrorResponseTest < Minitest::Test
|
|
include HTTPX
|
|
|
|
def test_error_response_finished?
|
|
r1 = make_error_response(RuntimeError.new("wow"))
|
|
assert r1.finished?
|
|
end
|
|
|
|
def test_error_response_error
|
|
error = RuntimeError.new("wow")
|
|
r1 = make_error_response(error)
|
|
assert r1.error == error
|
|
end
|
|
|
|
def test_error_response_raise_for_status
|
|
some_error = Class.new(RuntimeError)
|
|
r1 = make_error_response(some_error.new("wow"))
|
|
assert_raises(some_error) { r1.raise_for_status }
|
|
end
|
|
|
|
def test_error_response_to_s
|
|
r = make_error_response(RuntimeError.new("wow"))
|
|
str = r.to_s
|
|
assert str.match(/wow \(.*RuntimeError.*\)/), "expected \"wow (RuntimeError)\" in \"#{str}\""
|
|
end
|
|
|
|
def test_error_response_close
|
|
response = Response.new(request_mock, 200, "1.1", {})
|
|
request_mock.response = response
|
|
r = make_error_response(RuntimeError.new("wow"))
|
|
assert !response.body.closed?
|
|
r.close
|
|
assert response.body.closed?
|
|
end
|
|
|
|
def test_error_response_body_write
|
|
response = Response.new(request_mock, 200, "1.1", {})
|
|
request_mock.response = response
|
|
r = ErrorResponse.new(request_mock, RuntimeError.new("wow"))
|
|
assert response.body.empty?, "body should be empty after init"
|
|
r << "data"
|
|
assert response.body == "data", "body should have been updated"
|
|
end
|
|
|
|
private
|
|
|
|
def request_mock
|
|
@request_mock ||= Request.new("GET", "http://example.com/", Options.new)
|
|
end
|
|
|
|
def make_error_response(*args)
|
|
ErrorResponse.new(request_mock, *args)
|
|
end
|
|
end
|