Merge pull request #651 from duglin/ErrArgs

Add ability to pass in substitution args into an Error
This commit is contained in:
Stephen Day 2015-07-15 11:22:59 -07:00
commit b318e01f7d
5 changed files with 111 additions and 40 deletions

View file

@ -90,7 +90,7 @@ func TestUploadReadFrom(t *testing.T) {
[
{
"code": "BLOB_UPLOAD_INVALID",
"message": "invalid upload identifier",
"message": "blob upload invalid",
"detail": "more detail"
}
]
@ -174,11 +174,11 @@ func TestUploadReadFrom(t *testing.T) {
if v2Err.Code != v2.ErrorCodeBlobUploadInvalid {
t.Fatalf("Unexpected error code: %s, expected %d", v2Err.Code.String(), v2.ErrorCodeBlobUploadInvalid)
}
if expected := "blob upload invalid"; v2Err.Message() != expected {
t.Fatalf("Unexpected error message: %s, expected %s", v2Err.Message(), expected)
if expected := "blob upload invalid"; v2Err.Message != expected {
t.Fatalf("Unexpected error message: %q, expected %q", v2Err.Message, expected)
}
if expected := "more detail"; v2Err.Detail.(string) != expected {
t.Fatalf("Unexpected error message: %s, expected %s", v2Err.Detail.(string), expected)
t.Fatalf("Unexpected error message: %q, expected %q", v2Err.Detail.(string), expected)
}
}

View file

@ -52,10 +52,14 @@ func handleErrorResponse(resp *http.Response) error {
if resp.StatusCode == 401 {
err := parseHTTPErrorResponse(resp.Body)
if uErr, ok := err.(*UnexpectedHTTPResponseError); ok {
return &errcode.Error{
Code: v2.ErrorCodeUnauthorized,
Detail: uErr.Response,
}
return v2.ErrorCodeUnauthorized.WithDetail(uErr.Response)
/*
return &errcode.Error{
Code: v2.ErrorCodeUnauthorized,
Message: v2.ErrorCodeUnauthorized.Message(),
Detail: uErr.Response,
}
*/
}
return err
}

View file

@ -697,14 +697,14 @@ func TestManifestUnauthorized(t *testing.T) {
if err == nil {
t.Fatal("Expected error fetching manifest")
}
v2Err, ok := err.(*errcode.Error)
v2Err, ok := err.(errcode.Error)
if !ok {
t.Fatalf("Unexpected error type: %#v", err)
}
if v2Err.Code != v2.ErrorCodeUnauthorized {
t.Fatalf("Unexpected error code: %s", v2Err.Code.String())
}
if expected := errcode.ErrorCode(v2.ErrorCodeUnauthorized).Message(); v2Err.Message() != expected {
t.Fatalf("Unexpected message value: %s, expected %s", v2Err.Message(), expected)
if expected := v2.ErrorCodeUnauthorized.Message(); v2Err.Message != expected {
t.Fatalf("Unexpected message value: %q, expected %q", v2Err.Message, expected)
}
}