Transplant 'SHOW TAG KEYS' tests
parent
c485c63c77
commit
e84b338018
|
@ -352,6 +352,7 @@ func runTestsData(t *testing.T, testName string, nodes Cluster, database, retent
|
|||
},
|
||||
|
||||
// Metadata display tests
|
||||
|
||||
{
|
||||
reset: true,
|
||||
write: `{"database" : "%DB%", "retentionPolicy" : "%RP%", "points": [
|
||||
|
@ -391,6 +392,7 @@ func runTestsData(t *testing.T, testName string, nodes Cluster, database, retent
|
|||
queryDb: "%DB%",
|
||||
expected: `{"results":[{"series":[{"name":"cpu","columns":["id","host","region"],"values":[[3,"server01","useast"],[4,"server02","useast"]]}]}]}`,
|
||||
},
|
||||
|
||||
{
|
||||
reset: true,
|
||||
write: `{"database" : "%DB%", "retentionPolicy" : "%RP%", "points": [
|
||||
|
@ -417,6 +419,31 @@ func runTestsData(t *testing.T, testName string, nodes Cluster, database, retent
|
|||
expected: `{"results":[{"series":[{"name":"measurements","columns":["name"],"values":[["cpu"]]}]}]}`,
|
||||
},
|
||||
|
||||
{
|
||||
reset: true,
|
||||
write: `{"database" : "%DB%", "retentionPolicy" : "%RP%", "points": [
|
||||
{"name": "cpu", "tags": {"host": "server01"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}},
|
||||
{"name": "cpu", "tags": {"host": "server01", "region": "uswest"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}},
|
||||
{"name": "cpu", "tags": {"host": "server01", "region": "useast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}},
|
||||
{"name": "cpu", "tags": {"host": "server02", "region": "useast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}},
|
||||
{"name": "gpu", "tags": {"host": "server02", "region": "useast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}},
|
||||
{"name": "gpu", "tags": {"host": "server03", "region": "caeast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}}
|
||||
]}`,
|
||||
query: "SHOW TAG KEYS",
|
||||
queryDb: "%DB%",
|
||||
expected: `{"results":[{"series":[{"name":"cpu","columns":["tagKey"],"values":[["host"],["region"]]},{"name":"gpu","columns":["tagKey"],"values":[["host"],["region"]]}]}]}`,
|
||||
},
|
||||
{
|
||||
query: "SHOW TAG KEYS FROM cpu",
|
||||
queryDb: "%DB%",
|
||||
expected: `{"results":[{"series":[{"name":"cpu","columns":["tagKey"],"values":[["host"],["region"]]}]}]}`,
|
||||
},
|
||||
{
|
||||
query: "SHOW TAG KEYS FROM bad",
|
||||
queryDb: "%DB%",
|
||||
expected: `{"results":[{"error":"measurement \"bad\" not found"}]}`,
|
||||
},
|
||||
|
||||
// User control tests
|
||||
{
|
||||
name: "show users, no actual users",
|
||||
|
|
|
@ -1322,118 +1322,6 @@ func str2iface(strs []string) []interface{} {
|
|||
return a
|
||||
}
|
||||
|
||||
func TestHandler_serveShowTagKeys(t *testing.T) {
|
||||
srvr := OpenAuthlessServer(NewMessagingClient())
|
||||
srvr.CreateDatabase("foo")
|
||||
srvr.CreateRetentionPolicy("foo", influxdb.NewRetentionPolicy("bar"))
|
||||
srvr.SetDefaultRetentionPolicy("foo", "bar")
|
||||
s := NewHTTPServer(srvr)
|
||||
defer s.Close()
|
||||
|
||||
status, body := MustHTTP("POST", s.URL+`/write`, nil, nil, `{"database" : "foo", "retentionPolicy" : "bar", "points": [
|
||||
{"name": "cpu", "tags": {"host": "server01"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}},
|
||||
{"name": "cpu", "tags": {"host": "server01", "region": "uswest"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}},
|
||||
{"name": "cpu", "tags": {"host": "server01", "region": "useast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}},
|
||||
{"name": "cpu", "tags": {"host": "server02", "region": "useast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}},
|
||||
{"name": "gpu", "tags": {"host": "server02", "region": "useast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}},
|
||||
{"name": "gpu", "tags": {"host": "server03", "region": "caeast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}}
|
||||
]}`)
|
||||
|
||||
if status != http.StatusOK {
|
||||
t.Log(body)
|
||||
t.Fatalf("unexpected status after write: %d", status)
|
||||
}
|
||||
|
||||
var tests = []struct {
|
||||
q string
|
||||
r *influxdb.Results
|
||||
err string
|
||||
}{
|
||||
// SHOW TAG KEYS
|
||||
{
|
||||
q: `SHOW TAG KEYS`,
|
||||
r: &influxdb.Results{
|
||||
Results: []*influxdb.Result{
|
||||
{
|
||||
Series: []*influxql.Row{
|
||||
{
|
||||
Name: "cpu",
|
||||
Columns: []string{"tagKey"},
|
||||
Values: [][]interface{}{
|
||||
str2iface([]string{"host"}),
|
||||
str2iface([]string{"region"}),
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "gpu",
|
||||
Columns: []string{"tagKey"},
|
||||
Values: [][]interface{}{
|
||||
str2iface([]string{"host"}),
|
||||
str2iface([]string{"region"}),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
// SHOW TAG KEYS FROM...
|
||||
{
|
||||
q: `SHOW TAG KEYS FROM cpu`,
|
||||
r: &influxdb.Results{
|
||||
Results: []*influxdb.Result{
|
||||
{
|
||||
Series: []*influxql.Row{
|
||||
{
|
||||
Name: "cpu",
|
||||
Columns: []string{"tagKey"},
|
||||
Values: [][]interface{}{
|
||||
str2iface([]string{"host"}),
|
||||
str2iface([]string{"region"}),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
// SHOW TAG KEYS FROM <non-existant measurement>
|
||||
{
|
||||
q: `SHOW TAG KEYS FROM bad`,
|
||||
err: `measurement "bad" not found`,
|
||||
},
|
||||
}
|
||||
for i, tt := range tests {
|
||||
query := map[string]string{"db": "foo", "q": tt.q}
|
||||
status, body = MustHTTP("GET", s.URL+`/query`, query, nil, "")
|
||||
|
||||
if (tt.err == "" && status != http.StatusOK) ||
|
||||
(tt.err != "" && status != http.StatusInternalServerError) {
|
||||
t.Logf("query #%d: %s", i, tt.q)
|
||||
t.Logf("body = %s\n", body)
|
||||
t.Errorf("unexpected status: %d", status)
|
||||
}
|
||||
|
||||
r := &influxdb.Results{}
|
||||
if err := json.Unmarshal([]byte(body), r); err != nil {
|
||||
t.Logf("query #%d: %s", i, tt.q)
|
||||
t.Logf("body = %s\n", body)
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if !reflect.DeepEqual(tt.err, errstring(r.Results[0].Err)) {
|
||||
t.Logf("body = %s\n", body)
|
||||
fmt.Printf("r.Results[0].Err) = %v\n", r.Results[0].Err)
|
||||
t.Errorf("%d. %s: error mismatch:\n exp=%s\n got=%s\n\n", i, tt.q, tt.err, errstring(r.Results[0].Err))
|
||||
} else if tt.err == "" && !reflect.DeepEqual(tt.r, r) {
|
||||
b, _ := json.Marshal(tt.r)
|
||||
t.Log(string(b))
|
||||
t.Log(body)
|
||||
t.Errorf("%d. %s: result mismatch:\n\nexp=%#v\n\ngot=%#v\n\n", i, tt.q, tt.r, r)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestHandler_serveShowTagValues(t *testing.T) {
|
||||
srvr := OpenAuthlessServer(NewMessagingClient())
|
||||
srvr.CreateDatabase("foo")
|
||||
|
|
Loading…
Reference in New Issue