7492: add a keepproxy test with temporary connection refused error.
authorradhika <radhika@curoverse.com>
Sat, 24 Oct 2015 20:00:38 +0000 (16:00 -0400)
committerradhika <radhika@curoverse.com>
Sat, 24 Oct 2015 20:00:38 +0000 (16:00 -0400)
sdk/go/keepclient/keepclient_test.go
services/keepproxy/keepproxy_test.go

index 4acaf70fe46a8a28a6d6614e0b7e7b145306576d..df4638619f488bc86dd3626cf2579a60fda62bed 100644 (file)
@@ -557,8 +557,10 @@ func (s *StandaloneSuite) TestGetFail(c *C) {
        kc.Retries = 0
 
        r, n, url2, err := kc.Get(hash)
-       errNotFound, _ := err.(ErrNotFound)
+       errNotFound, _ := err.(*ErrNotFound)
        c.Check(errNotFound, NotNil)
+       c.Check(strings.Contains(errNotFound.Error(), "HTTP 500"), Equals, true)
+       c.Check(errNotFound.Temporary(), Equals, true)
        c.Check(n, Equals, int64(0))
        c.Check(url2, Equals, "")
        c.Check(r, Equals, nil)
@@ -603,9 +605,10 @@ func (s *StandaloneSuite) TestGetNetError(c *C) {
        kc.SetServiceRoots(map[string]string{"x": "http://localhost:62222"}, nil, nil)
 
        r, n, url2, err := kc.Get(hash)
-       errNotFound, _ := err.(ErrNotFound)
+       errNotFound, _ := err.(*ErrNotFound)
        c.Check(errNotFound, NotNil)
-       c.Check(strings.Contains(err.Error(), "connection refused"), Equals, true)
+       c.Check(strings.Contains(errNotFound.Error(), "connection refused"), Equals, true)
+       c.Check(errNotFound.Temporary(), Equals, true)
        c.Check(n, Equals, int64(0))
        c.Check(url2, Equals, "")
        c.Check(r, Equals, nil)
index e0d4a79c4c9e16d7b095ea90b8c475df3c75781d..6303122e345414d11b8d75c0ebd5be3eb5c428be 100644 (file)
@@ -518,3 +518,30 @@ func (s *ServerRequiredSuite) TestPutAskGetInvalidToken(c *C) {
                c.Assert(strings.Contains(err.Error(), "HTTP 403 \"Missing or invalid Authorization header\""), Equals, true)
        }
 }
+
+func (s *ServerRequiredSuite) TestPutAskGetConnectionError(c *C) {
+       arv, err := arvadosclient.MakeArvadosClient()
+       c.Assert(err, Equals, nil)
+
+       // keepclient with no such keep server
+       kc := keepclient.New(&arv)
+       locals := map[string]string{
+               "proxy": "http://localhost:12345",
+       }
+       kc.SetServiceRoots(locals, nil, nil)
+
+       // Ask should result in temporary connection refused error
+       hash := fmt.Sprintf("%x", md5.Sum([]byte("foo")))
+       _, _, err = kc.Ask(hash)
+       c.Check(err, NotNil)
+       errNotFound, _ := err.(*keepclient.ErrNotFound)
+       c.Check(errNotFound.Temporary(), Equals, true)
+       c.Assert(strings.Contains(err.Error(), "connection refused"), Equals, true)
+
+       // Get should result in temporary connection refused error
+       _, _, _, err = kc.Get(hash)
+       c.Check(err, NotNil)
+       errNotFound, _ = err.(*keepclient.ErrNotFound)
+       c.Check(errNotFound.Temporary(), Equals, true)
+       c.Assert(strings.Contains(err.Error(), "connection refused"), Equals, true)
+}