Skip to content

Commit

Permalink
Move the influxdb test to an examples directory
Browse files Browse the repository at this point in the history
These tests weren't designed to be run automatically via the ci. They
were a proof of concept and to demonstrate the api in action
  • Loading branch information
jvshahid committed Oct 27, 2014
1 parent b142ebe commit 9c31291
Show file tree
Hide file tree
Showing 2 changed files with 200 additions and 190 deletions.
200 changes: 200 additions & 0 deletions client/examples/example.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,200 @@
package examples

import (
"fmt"

"github.com/influxdb/influxdb/client"
)

func main() {
TestClient()
}

func TestClient() {
internalTest(true)
}

func TestClientWithoutCompression() {
internalTest(false)
}

func internalTest(compression bool) {
c, err := client.NewClient(&client.ClientConfig{})
if err != nil {
panic(err)
}

admins, err := c.GetClusterAdminList()
if err != nil {
panic(err)
}

if len(admins) == 1 {
if err := c.CreateClusterAdmin("admin", "password"); err != nil {
panic(err)
}
}

admins, err = c.GetClusterAdminList()
if err != nil {
panic(err)
}

if len(admins) != 2 {
panic("more than two admins returned")
}

dbs, err := c.GetDatabaseList()
if err != nil {
panic(err)
}

if len(dbs) == 0 {
if err := c.CreateDatabase("foobar"); err != nil {
panic(err)
}
}

dbs, err = c.GetDatabaseList()
if err != nil {
panic(err)
}

if len(dbs) != 1 && dbs[0]["foobar"] == nil {
panic("List of databases don't match")
}

users, err := c.GetDatabaseUserList("foobar")
if err != nil {
panic(err)
}

if len(users) == 0 {
if err := c.CreateDatabaseUser("foobar", "dbuser", "pass"); err != nil {
panic(err)
}

if err := c.AlterDatabasePrivilege("foobar", "dbuser", true); err != nil {
panic(err)
}
}

users, err = c.GetDatabaseUserList("foobar")
if err != nil {
panic(err)
}

if len(users) != 1 {
panic("more than one user returned")
}

c, err = client.NewClient(&client.ClientConfig{
Username: "dbuser",
Password: "pass",
Database: "foobar",
})

if !compression {
c.DisableCompression()
}

if err != nil {
panic(err)
}

name := "ts9"
if !compression {
name = "ts9_uncompressed"
}

series := &client.Series{
Name: name,
Columns: []string{"value"},
Points: [][]interface{}{
{1.0},
},
}
if err := c.WriteSeries([]*client.Series{series}); err != nil {
panic(err)
}

result, err := c.Query("select * from " + name)
if err != nil {
panic(err)
}

if len(result) != 1 {
panic(fmt.Errorf("expected one time series returned: %d", len(result)))
}

if len(result[0].Points) != 1 {
panic(fmt.Errorf("Expected one point: %d", len(result[0].Points)))
}

if result[0].Points[0][2].(float64) != 1 {
panic("Value not equal to 1")
}

c, err = client.NewClient(&client.ClientConfig{
Username: "root",
Password: "root",
})

if err != nil {
panic(err)
}

spaces, err := c.GetShardSpaces()
if err != nil || len(spaces) == 0 {
panic(fmt.Errorf("Got empty spaces back: %s", err))
}
if spaces[0].Name != "default" {
panic("Space name isn't default")
}
space := &client.ShardSpace{Name: "foo", Regex: "/^paul_is_rad/"}
err = c.CreateShardSpace("foobar", space)
if err != nil {
panic(err)
}
spaces, _ = c.GetShardSpaces()
if spaces[1].Name != "foo" {
panic("Space name isn't foo")
}
shards, err := c.GetShards()
if err != nil {
panic(fmt.Errorf("Couldn't get shards back: %s", err))
}

c, err = client.NewClient(&client.ClientConfig{
Username: "root",
Password: "root",
Database: "",
})
series = &client.Series{
Name: "paul_is_rad",
Columns: []string{"value"},
Points: [][]interface{}{
{1.0},
},
}
if err := c.WriteSeries([]*client.Series{series}); err != nil {
panic(err)
}

spaces, _ = c.GetShardSpaces()
count := 0
for _, s := range shards.All {
if s.SpaceName == "foo" {
count++
}
}

if err := c.DropShardSpace("foobar", "foo"); err != nil {
panic(fmt.Errorf("Error: %s", err))
}

spaces, err = c.GetShardSpaces()
if err != nil || len(spaces) != 1 || spaces[0].Name != "default" {
panic(fmt.Errorf("Error: %s, %d, %s", err, len(spaces), spaces[0].Name))
}
}
190 changes: 0 additions & 190 deletions client/influxdb_test.go

This file was deleted.

0 comments on commit 9c31291

Please sign in to comment.