2016-09-07 23:12:08 +02:00
|
|
|
package apcupsdexporter
|
|
|
|
|
|
|
|
import (
|
|
|
|
"io/ioutil"
|
|
|
|
"net/http"
|
|
|
|
"net/http/httptest"
|
|
|
|
"testing"
|
2020-06-08 15:41:16 +02:00
|
|
|
"time"
|
2016-09-07 23:12:08 +02:00
|
|
|
|
|
|
|
"github.com/prometheus/client_golang/prometheus"
|
2020-04-25 15:55:48 +02:00
|
|
|
"github.com/prometheus/client_golang/prometheus/promhttp"
|
2016-09-07 23:12:08 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
func testCollector(t *testing.T, collector prometheus.Collector) []byte {
|
2020-06-08 15:41:16 +02:00
|
|
|
t.Helper()
|
|
|
|
|
|
|
|
reg := prometheus.NewPedanticRegistry()
|
|
|
|
reg.MustRegister(collector)
|
2016-09-07 23:12:08 +02:00
|
|
|
|
2020-06-08 15:41:16 +02:00
|
|
|
srv := httptest.NewServer(promhttp.HandlerFor(reg, promhttp.HandlerOpts{}))
|
|
|
|
defer srv.Close()
|
2016-09-07 23:12:08 +02:00
|
|
|
|
2020-06-08 15:41:16 +02:00
|
|
|
c := &http.Client{Timeout: 1 * time.Second}
|
|
|
|
resp, err := c.Get(srv.URL)
|
2016-09-07 23:12:08 +02:00
|
|
|
if err != nil {
|
2020-06-08 15:41:16 +02:00
|
|
|
t.Fatalf("failed to HTTP GET data from prometheus: %v", err)
|
2016-09-07 23:12:08 +02:00
|
|
|
}
|
|
|
|
defer resp.Body.Close()
|
|
|
|
|
|
|
|
buf, err := ioutil.ReadAll(resp.Body)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatalf("failed to read server response: %v", err)
|
|
|
|
}
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|