3
from twisted.internet.defer import inlineCallbacks
5
from juju.control import main
7
from juju.charm.tests import local_charm_id
8
from .common import MachineControlToolTest
11
class ControlJujuGetTest(MachineControlToolTest):
15
yield super(ControlJujuGetTest, self).setUp()
17
"environments": {"firstenv": {"type": "dummy"}}}
18
self.write_config(yaml.dump(config))
20
self.stderr = self.capture_stream("stderr")
23
def test_get_service_config(self):
24
finished = self.setup_cli_reactor()
28
self.service_state = yield self.add_service_from_charm("wordpress")
29
config = yield self.service_state.get_config()
30
# The value which isn't in the config won't be displayed.
31
settings = {"blog-title": "Hello World", "world": 123}
32
config.update(settings)
35
output = self.capture_stream("stdout")
36
main(["get", "wordpress"])
39
data = yaml.load(output.getvalue())
41
{"service": "wordpress",
42
"charm": "local:series/wordpress-3",
43
'settings': {'blog-title': {
44
'description': 'A descriptive title used for the blog.',
46
'value': 'Hello World'}}},
50
def test_get_service_config_with_no_value(self):
51
finished = self.setup_cli_reactor()
55
self.service_state = yield self.add_service_from_charm(
56
"dummy", local_charm_id(self.charm))
57
config = yield self.service_state.get_config()
58
config["title"] = "hello movie"
59
config["skill-level"] = 24
62
output = self.capture_stream("stdout")
63
main(["get", "dummy"])
66
data = yaml.load(output.getvalue())
70
"charm": "local:series/dummy-1",
73
'description': 'No default outlook.',
75
'value': '-Not set-'},
77
'description': 'A number indicating skill.',
81
'description': ('A descriptive title used '
83
'value': 'hello movie',
86
'description': ('The name of the initial account (given '
87
'admin permissions).'),
88
'default': 'admin001',
94
def test_set_invalid_service(self):
95
finished = self.setup_cli_reactor()
99
main(["get", "whatever"])
103
self.assertIn("Service 'whatever' was not found",
104
self.stderr.getvalue())