Fix integration tests with testRequires(c, Network)

It seems http://hub.docker.com is not accessible anymore, so switching
to https://hub.docker.com for testRequires(c, Network).

Adds a Timeout check on the TestRequirement to *panic* if there is a
timeout (fail fast).

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
This commit is contained in:
Vincent Demeester 2015-07-06 16:27:17 +02:00
Родитель 26a35dd09b
Коммит 6e4c6da819
1 изменённых файлов: 13 добавлений и 1 удалений

Просмотреть файл

@ -8,6 +8,7 @@ import (
"net/http"
"os/exec"
"strings"
"time"
"github.com/go-check/check"
)
@ -37,7 +38,18 @@ var (
}
Network = TestRequirement{
func() bool {
resp, err := http.Get("http://hub.docker.com")
// Set a timeout on the GET at 15s
var timeout = time.Duration(15 * time.Second)
var url = "https://hub.docker.com"
client := http.Client{
Timeout: timeout,
}
resp, err := client.Get(url)
if err != nil && strings.Contains(err.Error(), "use of closed network connection") {
panic(fmt.Sprintf("Timeout for GET request on %s", url))
}
if resp != nil {
resp.Body.Close()
}