Rewrite the Error type. (#234)
This adds a source field to keep track of upstream errors and allow
backtraces, plus a URL field to indicate what URL an error was
associated with.
The enum variants we used to use for Error are now part of a new
ErrorKind type. For convenience within ureq, ErrorKinds can be turned
into an Error with `.new()` or `.msg("some additional information")`.
Error acts as a builder, so additional information can be added after
initial construction. For instance, we return a DnsFailed error when
name resolution fails. When that error bubbles up to Request's
`do_call`, Request adds the URL.
Fixes #232.
This commit is contained in:
committed by
GitHub
parent
dac517e30e
commit
fade03b54e
@@ -157,13 +157,13 @@ fn non_ascii_header() {
|
||||
test::set_handler("/non_ascii_header", |_unit| {
|
||||
test::make_response(200, "OK", vec!["Wörse: Hädör"], vec![])
|
||||
});
|
||||
let resp = get("test://host/non_ascii_header")
|
||||
let result = get("test://host/non_ascii_header")
|
||||
.set("Bäd", "Headör")
|
||||
.call();
|
||||
assert!(
|
||||
matches!(resp, Err(Error::BadHeader)),
|
||||
"expected Some(&BadHeader), got {:?}",
|
||||
resp
|
||||
matches!(result, Err(ref e) if e.kind() == ErrorKind::BadHeader),
|
||||
"expected Err(BadHeader), got {:?}",
|
||||
result
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user