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
59
60
61
62
63
64
65
66
67
68
69
|
"""Tests for assess_TEMPLATE module."""
import logging
from mock import Mock, patch
import StringIO
from assess_TEMPLATE import (
assess_TEMPLATE,
parse_args,
main,
)
from tests import (
parse_error,
TestCase,
)
class TestParseArgs(TestCase):
def test_common_args(self):
args = parse_args(["an-env", "/bin/juju", "/tmp/logs", "an-env-mod"])
self.assertEqual("an-env", args.env)
self.assertEqual("/bin/juju", args.juju_bin)
self.assertEqual("/tmp/logs", args.logs)
self.assertEqual("an-env-mod", args.temp_env_name)
self.assertEqual(False, args.debug)
def test_help(self):
fake_stdout = StringIO.StringIO()
with parse_error(self) as fake_stderr:
with patch("sys.stdout", fake_stdout):
parse_args(["--help"])
self.assertEqual("", fake_stderr.getvalue())
self.assertNotIn("TODO", fake_stdout.getvalue())
class TestMain(TestCase):
def test_main(self):
argv = ["an-env", "/bin/juju", "/tmp/logs", "an-env-mod", "--verbose"]
env = object()
client = Mock(spec=["is_jes_enabled"])
with patch("assess_TEMPLATE.configure_logging",
autospec=True) as mock_cl:
with patch("assess_TEMPLATE.BootstrapManager.booted_context",
autospec=True) as mock_bc:
with patch("jujupy.SimpleEnvironment.from_config",
return_value=env) as mock_e:
with patch("jujupy.EnvJujuClient.by_version",
return_value=client) as mock_c:
with patch("assess_TEMPLATE.assess_TEMPLATE",
autospec=True) as mock_assess:
main(argv)
mock_cl.assert_called_once_with(logging.DEBUG)
mock_e.assert_called_once_with("an-env")
mock_c.assert_called_once_with(env, "/bin/juju", debug=False)
self.assertEqual(mock_bc.call_count, 1)
mock_assess.assert_called_once_with(client)
class TestAssess(TestCase):
def test_TEMPLATE(self):
mock_client = Mock(spec=["juju", "wait_for_started"])
assess_TEMPLATE(mock_client)
mock_client.juju.assert_called_once_with(
'deploy', ('local:trusty/my-charm',))
mock_client.wait_for_started.assert_called_once_with()
self.assertNotIn("TODO", self.log_stream.getvalue())
|