~juju/pyjuju/go

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package testing_test

import (
	"fmt"
	. "launchpad.net/gocheck"
	zk "launchpad.net/gozk/zookeeper"
	"launchpad.net/juju/go/testing"
	stdtesting "testing"
)

type S struct{}

var _ = Suite(S{})

func TestT(t *stdtesting.T) {
	TestingT(t)
}

type testt func(string)

func (f testt) Fatalf(format string, args ...interface{}) {
	f(fmt.Sprintf(format, args...))
}

var allPerms = zk.WorldACL(zk.PERM_ALL)

func (S) TestStartAndClean(c *C) {
	srv := testing.StartZkServer()
	defer srv.Destroy()

	addr, err := srv.Addr()
	c.Assert(err, IsNil)

	conn, event, err := zk.Dial(addr, 5e9)
	c.Assert(err, IsNil)
	defer conn.Close()
	e := <-event
	c.Assert(e.Ok(), Equals, true)

	_, err = conn.Create("/foo", "foo", 0, allPerms)
	c.Assert(err, IsNil)
	_, err = conn.Create("/foo/bar", "bar", 0, allPerms)
	c.Assert(err, IsNil)
	_, err = conn.Create("/foo/bletch", "bar", 0, allPerms)
	c.Assert(err, IsNil)

	testing.ZkRemoveTree(conn, "/fdsvfdsvfds")

	testing.ZkRemoveTree(conn, "/zookeeper")

	c.Assert(func() { testing.ZkRemoveTree(conn, "//dsafsa") }, PanicMatches, ".+")

	testing.ZkRemoveTree(conn, "/")

	stat, err := conn.Exists("/foo")
	c.Assert(err, IsNil)
	c.Assert(stat, IsNil)
}