Merge lp:~james-page/charms/trusty/rabbitmq-server/tox-switchover into lp:~openstack-charmers-archive/charms/trusty/rabbitmq-server/next
- Trusty Tahr (14.04)
- tox-switchover
- Merge into next
Status: | Merged |
---|---|
Merged at revision: | 131 |
Proposed branch: | lp:~james-page/charms/trusty/rabbitmq-server/tox-switchover |
Merge into: | lp:~openstack-charmers-archive/charms/trusty/rabbitmq-server/next |
Diff against target: |
252 lines (+77/-53) 8 files modified
.bzrignore (+2/-0) .testr.conf (+8/-0) Makefile (+6/-17) requirements.txt (+12/-0) test-requirements.txt (+8/-5) tox.ini (+29/-0) unit_tests/__init__.py (+3/-0) unit_tests/test_rabbitmq_server_relations.py (+9/-31) |
To merge this branch: | bzr merge lp:~james-page/charms/trusty/rabbitmq-server/tox-switchover |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ryan Beisner (community) | Approve | ||
Liam Young (community) | Approve | ||
Review via email: mp+286139@code.launchpad.net |
Commit message
Description of the change
- 133. By James Page
-
Further makefile tidy
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_unit_test #566 rabbitmq-
UNIT FAIL: unit-test missing
UNIT Results (max last 2 lines):
INFO:root:Search string not found in makefile target commands.
ERROR:root:No make target was executed.
Full unit test output: http://
Build: http://
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_lint_check #655 rabbitmq-
LINT FAIL: lint-test missing
LINT Results (max last 2 lines):
INFO:root:Search string not found in makefile target commands.
ERROR:root:No make target was executed.
Full lint test output: http://
Build: http://
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_amulet_test #262 rabbitmq-
AMULET FAIL: amulet-test failed
AMULET Results (max last 2 lines):
2016-02-16 11:36:04,819 publish_
ERROR:root:Make target returned non-zero.
Full amulet test output: http://
Build: http://
Ryan Beisner (1chb1n) wrote : | # |
FYI, adjusting automation to be tox aware, will re-trigger unit and lint.
RE: amulet, one of the rmq units never reached "ready" state, will also retrigger.
rabbitmq-server/2 maintenance executing 1.25.3 6 5671/tcp,5672/tcp 172.17.104.67 (config-changed) Random wait for restart to avoid collisions
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_unit_test #567 rabbitmq-
UNIT OK: passed
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_lint_check #657 rabbitmq-
LINT OK: passed
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_amulet_test #263 rabbitmq-
AMULET FAIL: amulet-test failed
AMULET Results (max last 2 lines):
2016-02-16 15:11:51,342 connect_
ERROR:root:Make target returned non-zero.
Full amulet test output: http://
Build: http://
Ryan Beisner (1chb1n) wrote : | # |
I think your test is hitting this. It's definitely unrelated to the proposed changes.
https:/
Preview Diff
1 | === modified file '.bzrignore' | |||
2 | --- .bzrignore 2015-01-23 08:23:05 +0000 | |||
3 | +++ .bzrignore 2016-02-16 07:58:06 +0000 | |||
4 | @@ -2,3 +2,5 @@ | |||
5 | 2 | revision | 2 | revision |
6 | 3 | .coverage | 3 | .coverage |
7 | 4 | .venv | 4 | .venv |
8 | 5 | .tox | ||
9 | 6 | .testrepository | ||
10 | 5 | 7 | ||
11 | === added file '.testr.conf' | |||
12 | --- .testr.conf 1970-01-01 00:00:00 +0000 | |||
13 | +++ .testr.conf 2016-02-16 07:58:06 +0000 | |||
14 | @@ -0,0 +1,8 @@ | |||
15 | 1 | [DEFAULT] | ||
16 | 2 | test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \ | ||
17 | 3 | OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \ | ||
18 | 4 | OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \ | ||
19 | 5 | ${PYTHON:-python} -m subunit.run discover -t ./ ./unit_tests $LISTOPT $IDOPTION | ||
20 | 6 | |||
21 | 7 | test_id_option=--load-list $IDFILE | ||
22 | 8 | test_list_option=--list | ||
23 | 0 | 9 | ||
24 | === modified file 'Makefile' | |||
25 | --- Makefile 2015-10-21 13:36:00 +0000 | |||
26 | +++ Makefile 2016-02-16 07:58:06 +0000 | |||
27 | @@ -5,20 +5,11 @@ | |||
28 | 5 | TEST_PREFIX := PYTHONPATH=$(HOOKS_DIR) | 5 | TEST_PREFIX := PYTHONPATH=$(HOOKS_DIR) |
29 | 6 | 6 | ||
30 | 7 | clean: | 7 | clean: |
32 | 8 | rm -f .coverage | 8 | rm -f .coverage .testrepository |
33 | 9 | find . -name '*.pyc' -delete | 9 | find . -name '*.pyc' -delete |
46 | 10 | rm -rf .venv | 10 | |
47 | 11 | (which dh_clean && dh_clean) || true | 11 | lint: |
48 | 12 | 12 | tox -e pep8 | |
37 | 13 | .venv: | ||
38 | 14 | sudo apt-get install -y gcc python-dev python-virtualenv python-apt | ||
39 | 15 | virtualenv .venv --system-site-packages | ||
40 | 16 | .venv/bin/pip install -I -r test-requirements.txt | ||
41 | 17 | |||
42 | 18 | lint: .venv | ||
43 | 19 | @.venv/bin/flake8 --exclude hooks/charmhelpers,tests/charmhelpers hooks \ | ||
44 | 20 | unit_tests tests | ||
45 | 21 | @charm proof | ||
49 | 22 | 13 | ||
50 | 23 | bin/charm_helpers_sync.py: | 14 | bin/charm_helpers_sync.py: |
51 | 24 | @mkdir -p bin | 15 | @mkdir -p bin |
52 | @@ -33,10 +24,8 @@ | |||
53 | 33 | bzr push lp:charms/rabbitmq-server | 24 | bzr push lp:charms/rabbitmq-server |
54 | 34 | bzr push lp:charms/trusty/rabbitmq-server | 25 | bzr push lp:charms/trusty/rabbitmq-server |
55 | 35 | 26 | ||
60 | 36 | test: .venv | 27 | test: |
61 | 37 | @echo Starting tests... | 28 | tox -e py27 |
58 | 38 | env CHARM_DIR=$(CHARM_DIR) $(TEST_PREFIX) .venv/bin/nosetests \ | ||
59 | 39 | -v --nologcapture --with-coverage unit_tests/ | ||
62 | 40 | 29 | ||
63 | 41 | functional_test: | 30 | functional_test: |
64 | 42 | @echo Starting amulet tests... | 31 | @echo Starting amulet tests... |
65 | 43 | 32 | ||
66 | === added file 'requirements.txt' | |||
67 | --- requirements.txt 1970-01-01 00:00:00 +0000 | |||
68 | +++ requirements.txt 2016-02-16 07:58:06 +0000 | |||
69 | @@ -0,0 +1,12 @@ | |||
70 | 1 | # The order of packages is significant, because pip processes them in the order | ||
71 | 2 | # of appearance. Changing the order has an impact on the overall integration | ||
72 | 3 | # process, which may cause wedges in the gate later. | ||
73 | 4 | PyYAML>=3.1.0 | ||
74 | 5 | simplejson>=2.2.0 | ||
75 | 6 | netifaces>=0.10.4 | ||
76 | 7 | netaddr>=0.7.12,!=0.7.16 | ||
77 | 8 | Jinja2>=2.6 # BSD License (3 clause) | ||
78 | 9 | six>=1.9.0 | ||
79 | 10 | dnspython>=1.12.0 | ||
80 | 11 | psutil>=1.1.1,<2.0.0 | ||
81 | 12 | python-neutronclient>=2.6.0 | ||
82 | 0 | 13 | ||
83 | === modified file 'test-requirements.txt' | |||
84 | --- test-requirements.txt 2015-01-23 09:01:50 +0000 | |||
85 | +++ test-requirements.txt 2016-02-16 07:58:06 +0000 | |||
86 | @@ -1,5 +1,8 @@ | |||
92 | 1 | nose | 1 | # The order of packages is significant, because pip processes them in the order |
93 | 2 | testtools | 2 | # of appearance. Changing the order has an impact on the overall integration |
94 | 3 | mock | 3 | # process, which may cause wedges in the gate later. |
95 | 4 | coverage | 4 | coverage>=3.6 |
96 | 5 | flake8 | 5 | mock>=1.2 |
97 | 6 | flake8>=2.2.4,<=2.4.1 | ||
98 | 7 | os-testr>=0.4.1 | ||
99 | 8 | charm-tools | ||
100 | 6 | 9 | ||
101 | === added file 'tox.ini' | |||
102 | --- tox.ini 1970-01-01 00:00:00 +0000 | |||
103 | +++ tox.ini 2016-02-16 07:58:06 +0000 | |||
104 | @@ -0,0 +1,29 @@ | |||
105 | 1 | [tox] | ||
106 | 2 | envlist = pep8,py27 | ||
107 | 3 | skipsdist = True | ||
108 | 4 | |||
109 | 5 | [testenv] | ||
110 | 6 | setenv = VIRTUAL_ENV={envdir} | ||
111 | 7 | PYTHONHASHSEED=0 | ||
112 | 8 | install_command = | ||
113 | 9 | pip install --allow-unverified python-apt {opts} {packages} | ||
114 | 10 | commands = ostestr {posargs} | ||
115 | 11 | |||
116 | 12 | [testenv:py27] | ||
117 | 13 | basepython = python2.7 | ||
118 | 14 | deps = -r{toxinidir}/requirements.txt | ||
119 | 15 | -r{toxinidir}/test-requirements.txt | ||
120 | 16 | |||
121 | 17 | [testenv:pep8] | ||
122 | 18 | basepython = python2.7 | ||
123 | 19 | deps = -r{toxinidir}/requirements.txt | ||
124 | 20 | -r{toxinidir}/test-requirements.txt | ||
125 | 21 | commands = flake8 {posargs} hooks unit_tests tests | ||
126 | 22 | charm proof | ||
127 | 23 | |||
128 | 24 | [testenv:venv] | ||
129 | 25 | commands = {posargs} | ||
130 | 26 | |||
131 | 27 | [flake8] | ||
132 | 28 | ignore = E402,E226 | ||
133 | 29 | exclude = hooks/charmhelpers | ||
134 | 0 | 30 | ||
135 | === modified file 'unit_tests/__init__.py' | |||
136 | --- unit_tests/__init__.py 2014-10-08 15:57:57 +0000 | |||
137 | +++ unit_tests/__init__.py 2016-02-16 07:58:06 +0000 | |||
138 | @@ -0,0 +1,3 @@ | |||
139 | 1 | import sys | ||
140 | 2 | |||
141 | 3 | sys.path.append('hooks/') | ||
142 | 0 | 4 | ||
143 | === modified file 'unit_tests/test_rabbitmq_server_relations.py' | |||
144 | --- unit_tests/test_rabbitmq_server_relations.py 2015-10-19 03:33:39 +0000 | |||
145 | +++ unit_tests/test_rabbitmq_server_relations.py 2016-02-16 07:58:06 +0000 | |||
146 | @@ -1,6 +1,6 @@ | |||
147 | 1 | import os | 1 | import os |
148 | 2 | from testtools import TestCase | 2 | from testtools import TestCase |
150 | 3 | from mock import patch, MagicMock | 3 | from mock import patch |
151 | 4 | 4 | ||
152 | 5 | os.environ['JUJU_UNIT_NAME'] = 'UNIT_TEST/0' # noqa - needed for import | 5 | os.environ['JUJU_UNIT_NAME'] = 'UNIT_TEST/0' # noqa - needed for import |
153 | 6 | import rabbitmq_server_relations | 6 | import rabbitmq_server_relations |
154 | @@ -11,31 +11,11 @@ | |||
155 | 11 | self.fake_repo = {} | 11 | self.fake_repo = {} |
156 | 12 | super(RelationUtil, self).setUp() | 12 | super(RelationUtil, self).setUp() |
157 | 13 | 13 | ||
158 | 14 | def _apt_cache(self): | ||
159 | 15 | """Used for mocking out apt_pkg.Cache""" | ||
160 | 16 | # mocks out the apt cache | ||
161 | 17 | def cache_get(package): | ||
162 | 18 | pkg = MagicMock() | ||
163 | 19 | if package in self.fake_repo \ | ||
164 | 20 | and 'pkg_vers' in self.fake_repo[package]: | ||
165 | 21 | pkg.name = package | ||
166 | 22 | pkg.current_ver.ver_str = self.fake_repo[package]['pkg_vers'] | ||
167 | 23 | elif (package in self.fake_repo and | ||
168 | 24 | 'pkg_vers' not in self.fake_repo[package]): | ||
169 | 25 | pkg.name = package | ||
170 | 26 | pkg.current_ver = None | ||
171 | 27 | else: | ||
172 | 28 | raise KeyError | ||
173 | 29 | return pkg | ||
174 | 30 | cache = MagicMock() | ||
175 | 31 | cache.__getitem__.side_effect = cache_get | ||
176 | 32 | return cache | ||
177 | 33 | |||
178 | 34 | @patch('rabbitmq_server_relations.peer_store_and_set') | 14 | @patch('rabbitmq_server_relations.peer_store_and_set') |
179 | 35 | @patch('rabbitmq_server_relations.get_ipv6_addr') | 15 | @patch('rabbitmq_server_relations.get_ipv6_addr') |
180 | 36 | @patch('rabbitmq_server_relations.config') | 16 | @patch('rabbitmq_server_relations.config') |
181 | 37 | @patch('rabbitmq_server_relations.relation_set') | 17 | @patch('rabbitmq_server_relations.relation_set') |
183 | 38 | @patch('apt_pkg.Cache') | 18 | @patch('rabbitmq_server_relations.cmp_pkgrevno') |
184 | 39 | @patch('rabbitmq_server_relations.is_clustered') | 19 | @patch('rabbitmq_server_relations.is_clustered') |
185 | 40 | @patch('rabbitmq_server_relations.ssl_utils.configure_client_ssl') | 20 | @patch('rabbitmq_server_relations.ssl_utils.configure_client_ssl') |
186 | 41 | @patch('rabbitmq_server_relations.unit_get') | 21 | @patch('rabbitmq_server_relations.unit_get') |
187 | @@ -44,7 +24,7 @@ | |||
188 | 44 | def test_amqp_changed_compare_versions_ha_queues( | 24 | def test_amqp_changed_compare_versions_ha_queues( |
189 | 45 | self, | 25 | self, |
190 | 46 | is_elected_leader, relation_get, unit_get, configure_client_ssl, | 26 | is_elected_leader, relation_get, unit_get, configure_client_ssl, |
192 | 47 | is_clustered, apt_cache, relation_set, mock_config, | 27 | is_clustered, cmp_pkgrevno, relation_set, mock_config, |
193 | 48 | mock_get_ipv6_addr, mock_peer_store_and_set): | 28 | mock_get_ipv6_addr, mock_peer_store_and_set): |
194 | 49 | """ | 29 | """ |
195 | 50 | Compare version above and below 3.0.1. | 30 | Compare version above and below 3.0.1. |
196 | @@ -64,9 +44,8 @@ | |||
197 | 64 | is_elected_leader.return_value = True | 44 | is_elected_leader.return_value = True |
198 | 65 | relation_get.return_value = {} | 45 | relation_get.return_value = {} |
199 | 66 | is_clustered.return_value = False | 46 | is_clustered.return_value = False |
201 | 67 | apt_cache.return_value = self._apt_cache() | 47 | cmp_pkgrevno.return_value = -1 |
202 | 68 | 48 | ||
203 | 69 | self.fake_repo = {'rabbitmq-server': {'pkg_vers': '3.0'}} | ||
204 | 70 | rabbitmq_server_relations.amqp_changed(None, None) | 49 | rabbitmq_server_relations.amqp_changed(None, None) |
205 | 71 | mock_peer_store_and_set.assert_called_with( | 50 | mock_peer_store_and_set.assert_called_with( |
206 | 72 | relation_settings={'private-address': '10.1.2.3', | 51 | relation_settings={'private-address': '10.1.2.3', |
207 | @@ -74,7 +53,7 @@ | |||
208 | 74 | 'ha_queues': True}, | 53 | 'ha_queues': True}, |
209 | 75 | relation_id=None) | 54 | relation_id=None) |
210 | 76 | 55 | ||
212 | 77 | self.fake_repo = {'rabbitmq-server': {'pkg_vers': '3.0.2'}} | 56 | cmp_pkgrevno.return_value = 1 |
213 | 78 | rabbitmq_server_relations.amqp_changed(None, None) | 57 | rabbitmq_server_relations.amqp_changed(None, None) |
214 | 79 | mock_peer_store_and_set.assert_called_with( | 58 | mock_peer_store_and_set.assert_called_with( |
215 | 80 | relation_settings={'private-address': '10.1.2.3', | 59 | relation_settings={'private-address': '10.1.2.3', |
216 | @@ -85,7 +64,7 @@ | |||
217 | 85 | @patch('rabbitmq_server_relations.get_ipv6_addr') | 64 | @patch('rabbitmq_server_relations.get_ipv6_addr') |
218 | 86 | @patch('rabbitmq_server_relations.config') | 65 | @patch('rabbitmq_server_relations.config') |
219 | 87 | @patch('rabbitmq_server_relations.relation_set') | 66 | @patch('rabbitmq_server_relations.relation_set') |
221 | 88 | @patch('apt_pkg.Cache') | 67 | @patch('rabbitmq_server_relations.cmp_pkgrevno') |
222 | 89 | @patch('rabbitmq_server_relations.is_clustered') | 68 | @patch('rabbitmq_server_relations.is_clustered') |
223 | 90 | @patch('rabbitmq_server_relations.ssl_utils.configure_client_ssl') | 69 | @patch('rabbitmq_server_relations.ssl_utils.configure_client_ssl') |
224 | 91 | @patch('rabbitmq_server_relations.unit_get') | 70 | @patch('rabbitmq_server_relations.unit_get') |
225 | @@ -94,7 +73,7 @@ | |||
226 | 94 | def test_amqp_changed_compare_versions_ha_queues_prefer_ipv6( | 73 | def test_amqp_changed_compare_versions_ha_queues_prefer_ipv6( |
227 | 95 | self, | 74 | self, |
228 | 96 | is_elected_leader, relation_get, unit_get, configure_client_ssl, | 75 | is_elected_leader, relation_get, unit_get, configure_client_ssl, |
230 | 97 | is_clustered, apt_cache, relation_set, mock_config, | 76 | is_clustered, cmp_pkgrevno, relation_set, mock_config, |
231 | 98 | mock_get_ipv6_addr, mock_peer_store_and_set): | 77 | mock_get_ipv6_addr, mock_peer_store_and_set): |
232 | 99 | """ | 78 | """ |
233 | 100 | Compare version above and below 3.0.1. | 79 | Compare version above and below 3.0.1. |
234 | @@ -115,16 +94,15 @@ | |||
235 | 115 | is_elected_leader.return_value = True | 94 | is_elected_leader.return_value = True |
236 | 116 | relation_get.return_value = {} | 95 | relation_get.return_value = {} |
237 | 117 | is_clustered.return_value = False | 96 | is_clustered.return_value = False |
239 | 118 | apt_cache.return_value = self._apt_cache() | 97 | cmp_pkgrevno.return_value = -1 |
240 | 119 | 98 | ||
241 | 120 | self.fake_repo = {'rabbitmq-server': {'pkg_vers': '3.0'}} | ||
242 | 121 | rabbitmq_server_relations.amqp_changed(None, None) | 99 | rabbitmq_server_relations.amqp_changed(None, None) |
243 | 122 | mock_peer_store_and_set.assert_called_with( | 100 | mock_peer_store_and_set.assert_called_with( |
244 | 123 | relation_settings={'private-address': ipv6_addr, | 101 | relation_settings={'private-address': ipv6_addr, |
245 | 124 | 'ha_queues': True}, | 102 | 'ha_queues': True}, |
246 | 125 | relation_id=None) | 103 | relation_id=None) |
247 | 126 | 104 | ||
249 | 127 | self.fake_repo = {'rabbitmq-server': {'pkg_vers': '3.0.2'}} | 105 | cmp_pkgrevno.return_value = 1 |
250 | 128 | rabbitmq_server_relations.amqp_changed(None, None) | 106 | rabbitmq_server_relations.amqp_changed(None, None) |
251 | 129 | mock_peer_store_and_set.assert_called_with( | 107 | mock_peer_store_and_set.assert_called_with( |
252 | 130 | relation_settings={'private-address': ipv6_addr}, | 108 | relation_settings={'private-address': ipv6_addr}, |
LGTM but I'd like to make sure that the osci initiated tests work