9
10
from twisted.trial.unittest import TestCase as TrialTestCase
11
12
from txzookeeper import ZookeeperClient
13
from txzookeeper.managed import ManagedClient
13
15
from juju.lib.mocker import MockerTestCase
14
16
from juju.tests.common import get_test_zookeeper_address
153
155
returnValue(True)
155
157
def get_zookeeper_client(self):
156
client = ZookeeperClient(
158
client = ManagedClient(
157
159
get_test_zookeeper_address(), session_timeout=1000)
163
def dump_data(self, path="/"):
168
def export_tree(path, indent):
170
data, stat = yield client.get(path)
171
name = path.rsplit('/', 1)[1]
173
d['contents'] = _decode_fmt(data, yaml.load)
175
children = yield client.get_children(path)
176
for name in children:
177
if path == "/" and name == "zookeeper":
180
cd = yield export_tree(path + '/' + name, indent)
185
output[path.rsplit('/', 1)[1]] = yield export_tree(path, '')
189
def assertTree(self, path, data):
190
data = yield self.dump_data(path)
191
self.assertEqual(data, data)
194
def dump_tree(self, path="/", format=yaml.load):
200
def export_tree(path, indent):
201
data, stat = yield client.get(path)
202
name = path.rsplit("/", 1)[1]
204
properties = _decode_fmt(data, format)
205
out(indent + "/" + name)
207
for i in sorted(properties.iteritems()):
208
out(indent + "%s = %r" % i)
210
children = yield client.get_children(path)
211
for name in sorted(children):
212
if path == "/" and name == "zookeeper":
215
yield export_tree(path + "/" + name, indent)
217
yield export_tree(path, "")
218
returnValue("\n".join(output) + "\n")
221
def _decode_fmt(s, decoder):
228
data = dict(string_value=s)