added test for to_s rep of error response (i.e. must contain the canonical message class def)

This commit is contained in:
HoneyryderChuck 2021-02-18 10:44:24 +00:00
parent b6c94f1702
commit edfd92ea60
2 changed files with 11 additions and 4 deletions

View File

@ -274,7 +274,8 @@ module HTTPX
end
else
def to_s
"#{@error.message} (#{@error.class})\n#{@error.backtrace.join("\n")}"
"#{@error.message} (#{@error.class})\n" \
"#{@error.backtrace.join("\n") if @error.backtrace}"
end
end

View File

@ -5,18 +5,18 @@ require_relative "test_helper"
class ErrorResponseTest < Minitest::Test
include HTTPX
def test_response_status
def test_error_response_status
r1 = ErrorResponse.new(request_mock, RuntimeError.new("wow"), {})
assert r1.status == "wow"
end
def test_response_raise_for_status
def test_error_response_raise_for_status
some_error = Class.new(RuntimeError)
r1 = ErrorResponse.new(request_mock, some_error.new("wow"), {})
assert_raises(some_error) { r1.raise_for_status }
end
def test_respond_method_missing_errors
def test_error_response_respond_method_missing_errors
r1 = ErrorResponse.new(request_mock, RuntimeError.new("wow"), {})
ex1 = assert_raises(NoMethodError) { r1.read }
assert ex1.message =~ /undefined response method/
@ -24,6 +24,12 @@ class ErrorResponseTest < Minitest::Test
assert ex2.message =~ /undefined method/
end
def test_error_response_to_s
r = ErrorResponse.new(request_mock, RuntimeError.new("wow"), {})
str = r.to_s
assert str.match(/wow \(.*RuntimeError.*\)/), "expected \"wow (RuntimeError)\" in \"#{str}\""
end
private
def request_mock