Merge lp:~sinzui/juju-ci-tools/modern-charm-series into lp:juju-ci-tools

Proposed by Curtis Hovey
Status: Merged
Merged at revision: 1985
Proposed branch: lp:~sinzui/juju-ci-tools/modern-charm-series
Merge into: lp:juju-ci-tools
Diff against target: 160 lines (+22/-17)
2 files modified
assess_multi_series_charms.py (+12/-8)
tests/test_assess_multi_series_charms.py (+10/-9)
To merge this branch: bzr merge lp:~sinzui/juju-ci-tools/modern-charm-series
Reviewer Review Type Date Requested Status
Aaron Bentley (community) Approve
Review via email: mp+322210@code.launchpad.net

Description of the change

Use reasonable series in multi-series charm test.

The multi-series charm tests are failing because they are trying to deploy precise, which we no longer make agents for. This branch updates the test to use living series. The --force scenario for charms is most likely to happen for ubuntu devel series. I added a --devel-series arg that will be used for the devel series. I intend to pass zesty to verify it works.

I removed some extra space noted by lint.

To post a comment you must log in.
Revision history for this message
Aaron Bentley (abentley) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'assess_multi_series_charms.py'
2--- assess_multi_series_charms.py 2017-01-20 20:39:27 +0000
3+++ assess_multi_series_charms.py 2017-04-07 16:33:43 +0000
4@@ -11,9 +11,9 @@
5 summary: "Great software"
6 description: It works
7 series:
8+ - xenial
9 - trusty
10- - precise
11- - wily
12+ - angsty
13
14 The default series is the first in the list:
15
16@@ -23,12 +23,12 @@
17
18 A different, non-default series may be specified:
19
20- juju deploy mycharm --series precise
21+ juju deploy mycharm --series xenial
22
23 It is possible to force the charm to deploy using an unsupported series
24 (so long as the underlying OS is compatible):
25
26- juju deploy mycharm --series xenial --force
27+ juju deploy mycharm --series angsty --force
28
29 """
30 from __future__ import print_function
31@@ -63,15 +63,16 @@
32 "juju1x_supported"])
33
34
35-def assess_multi_series_charms(client):
36+def assess_multi_series_charms(client, devel_series):
37 """Assess multi series charms.
38
39 :param client: Juju client.
40+ :param devel_series: The series to use for new and unsupported scenarios.
41 :type client: jujupy.ModelClient
42 :return: None
43 """
44 tests = [
45- Test(series="precise", service='test0', force=False, success=False,
46+ Test(series="xenial", service='test0', force=False, success=False,
47 machine=None, juju1x_supported=False),
48 Test(series=None, service='test1', force=False, success=True,
49 machine='0', juju1x_supported=True),
50@@ -79,7 +80,7 @@
51 machine='1', juju1x_supported=True),
52 Test(series="xenial", service='test3', force=False, success=True,
53 machine='2', juju1x_supported=False),
54- Test(series="precise", service='test4', force=True, success=True,
55+ Test(series=devel_series, service='test4', force=True, success=True,
56 machine='3', juju1x_supported=False),
57 ]
58 with temp_dir() as repository:
59@@ -133,6 +134,9 @@
60 parser = argparse.ArgumentParser(
61 description="Test multi series charm feature")
62 add_basic_testing_arguments(parser)
63+ parser.add_argument(
64+ '--devel-series', default="xenial",
65+ help="The series to use when testing new and unsupported scenarios.")
66 return parser.parse_args(argv)
67
68
69@@ -141,7 +145,7 @@
70 configure_logging(args.verbose)
71 bs_manager = BootstrapManager.from_args(args)
72 with bs_manager.booted_context(args.upload_tools):
73- assess_multi_series_charms(bs_manager.client)
74+ assess_multi_series_charms(bs_manager.client, args.devel_series)
75 return 0
76
77
78
79=== modified file 'tests/test_assess_multi_series_charms.py'
80--- tests/test_assess_multi_series_charms.py 2016-09-20 14:19:15 +0000
81+++ tests/test_assess_multi_series_charms.py 2017-04-07 16:33:43 +0000
82@@ -47,7 +47,8 @@
83
84 class TestMain(TestCase):
85 def test_main(self):
86- argv = ["an-env", "/bin/juju", "/tmp/logs", "an-env-mod", "--verbose"]
87+ argv = ["an-env", "/bin/juju", "/tmp/logs", "an-env-mod",
88+ "--verbose", '--devel-series', 'angsty']
89 client = Mock(spec=["is_jes_enabled"])
90 with patch("assess_multi_series_charms.configure_logging",
91 autospec=True) as mock_cl:
92@@ -64,7 +65,7 @@
93 mock_c.assert_called_once_with('an-env', "/bin/juju", debug=False,
94 soft_deadline=None)
95 self.assertEqual(mock_bc.call_count, 1)
96- mock_assess.assert_called_once_with(client)
97+ mock_assess.assert_called_once_with(client, 'angsty')
98
99
100 class TestAssess(TestCase):
101@@ -89,12 +90,12 @@
102 td_mock.return_value.__enter__.return_value = charm_dir
103 with patch('assess_multi_series_charms.check_series',
104 autospec=True) as cs_mock:
105- assess_multi_series_charms(mock_client)
106+ assess_multi_series_charms(mock_client, 'angsty')
107 self.assertEqual(mock_client.wait_for_started.call_count, 4)
108 charm = os.path.join(charm_dir, 'trusty', 'dummy')
109 calls = [
110 call(charm=charm, force=False, repository=charm_dir,
111- series='precise', service='test0'),
112+ series='xenial', service='test0'),
113 call(charm=charm, force=False, repository=charm_dir,
114 series=None, service='test1'),
115 call(charm=charm, force=False, repository=charm_dir,
116@@ -102,7 +103,7 @@
117 call(charm=charm, force=False, repository=charm_dir,
118 series='xenial', service='test3'),
119 call(charm=charm, force=True, repository=charm_dir,
120- series='precise', service='test4')
121+ series='angsty', service='test4')
122 ]
123 self.assertEqual(mock_client.deploy.mock_calls, calls)
124 td_mock.assert_called_once_with()
125@@ -110,7 +111,7 @@
126 call(mock_client, machine='0', series=None),
127 call(mock_client, machine='1', series='trusty'),
128 call(mock_client, machine='2', series='xenial'),
129- call(mock_client, machine='3', series='precise')]
130+ call(mock_client, machine='3', series='angsty')]
131 self.assertEqual(cs_mock.mock_calls, cs_calls)
132
133 def test_assess_multi_series_charms_juju1x(self):
134@@ -127,7 +128,7 @@
135 td_mock.return_value.__enter__.return_value = charm_dir
136 with patch('assess_multi_series_charms.check_series',
137 autospec=True) as cs_mock:
138- assess_multi_series_charms(mock_client)
139+ assess_multi_series_charms(mock_client, 'angsty')
140 self.assertEqual(mock_client.wait_for_started.call_count, 2)
141 charm = os.path.join('local:trusty', 'dummy')
142 calls = [
143@@ -155,7 +156,7 @@
144
145 def test_assert_deploy_success_false(self):
146 test = Test(series='trusty', service='test1', force=False,
147- success=False, machine='0', juju1x_supported=False)
148+ success=False, machine='0', juju1x_supported=False)
149 mock_client = Mock(
150 spec=["deploy", "get_juju_output", "wait_for_started"])
151 mock_client.deploy.side_effect = subprocess.CalledProcessError(
152@@ -167,7 +168,7 @@
153
154 def test_assert_deploy_success_false_raises_exception(self):
155 test = Test(series='trusty', service='test1', force=False,
156- success=False, machine='0', juju1x_supported=False)
157+ success=False, machine='0', juju1x_supported=False)
158 mock_client = Mock(
159 spec=["deploy", "get_juju_output", "wait_for_started"])
160 with self.assertRaisesRegexp(

Subscribers

People subscribed via source and target branches