Merge ~chad.smith/cloud-init:cleanup/fix-ec2-test-metadata-leak into cloud-init:master

Proposed by Chad Smith
Status: Merged
Approved by: Chad Smith
Approved revision: 85f5c8302d194207465845af8b12e2b2785e17e3
Merge reported by: Server Team CI bot
Merged at revision: not available
Proposed branch: ~chad.smith/cloud-init:cleanup/fix-ec2-test-metadata-leak
Merge into: cloud-init:master
Diff against target: 145 lines (+24/-16)
1 file modified
tests/unittests/test_datasource/test_ec2.py (+24/-16)
Reviewer Review Type Date Requested Status
Server Team CI bot continuous-integration Approve
cloud-init Commiters Pending
Review via email: mp+358474@code.launchpad.net

Commit message

tests: ec2 mock missing httpretty user-data and instance-identity routes

To post a comment you must log in.
Revision history for this message
Server Team CI bot (server-team-bot) wrote :

FAILED: Continuous integration, rev:bc0048ee2870e17ad2e3fac1aaad2d4ad7d20219
https://jenkins.ubuntu.com/server/job/cloud-init-ci/426/
Executed test runs:
    SUCCESS: Checkout
    FAILED: Unit & Style Tests

Click here to trigger a rebuild:
https://jenkins.ubuntu.com/server/job/cloud-init-ci/426/rebuild

review: Needs Fixing (continuous-integration)
85f5c83... by Chad Smith

pycodestyle

Revision history for this message
Server Team CI bot (server-team-bot) wrote :

FAILED: Continuous integration, rev:85f5c8302d194207465845af8b12e2b2785e17e3
https://jenkins.ubuntu.com/server/job/cloud-init-ci/428/
Executed test runs:
    FAILED: Checkout

Click here to trigger a rebuild:
https://jenkins.ubuntu.com/server/job/cloud-init-ci/428/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :

PASSED: Continuous integration, rev:85f5c8302d194207465845af8b12e2b2785e17e3
https://jenkins.ubuntu.com/server/job/cloud-init-ci/427/
Executed test runs:
    SUCCESS: Checkout
    SUCCESS: Unit & Style Tests
    SUCCESS: Ubuntu LTS: Build
    SUCCESS: Ubuntu LTS: Integration
    IN_PROGRESS: Declarative: Post Actions

Click here to trigger a rebuild:
https://jenkins.ubuntu.com/server/job/cloud-init-ci/427/rebuild

review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/tests/unittests/test_datasource/test_ec2.py b/tests/unittests/test_datasource/test_ec2.py
index 9f81255..1a5956d 100644
--- a/tests/unittests/test_datasource/test_ec2.py
+++ b/tests/unittests/test_datasource/test_ec2.py
@@ -211,9 +211,9 @@ class TestEc2(test_helpers.HttprettyTestCase):
211 self.metadata_addr = self.datasource.metadata_urls[0]211 self.metadata_addr = self.datasource.metadata_urls[0]
212 self.tmp = self.tmp_dir()212 self.tmp = self.tmp_dir()
213213
214 def data_url(self, version):214 def data_url(self, version, data_item='meta-data'):
215 """Return a metadata url based on the version provided."""215 """Return a metadata url based on the version provided."""
216 return '/'.join([self.metadata_addr, version, 'meta-data', ''])216 return '/'.join([self.metadata_addr, version, data_item])
217217
218 def _patch_add_cleanup(self, mpath, *args, **kwargs):218 def _patch_add_cleanup(self, mpath, *args, **kwargs):
219 p = mock.patch(mpath, *args, **kwargs)219 p = mock.patch(mpath, *args, **kwargs)
@@ -238,10 +238,18 @@ class TestEc2(test_helpers.HttprettyTestCase):
238 all_versions = (238 all_versions = (
239 [ds.min_metadata_version] + ds.extended_metadata_versions)239 [ds.min_metadata_version] + ds.extended_metadata_versions)
240 for version in all_versions:240 for version in all_versions:
241 metadata_url = self.data_url(version)241 metadata_url = self.data_url(version) + '/'
242 if version == md_version:242 if version == md_version:
243 # Register all metadata for desired version243 # Register all metadata for desired version
244 register_mock_metaserver(metadata_url, md)244 register_mock_metaserver(
245 metadata_url, md.get('md', DEFAULT_METADATA))
246 userdata_url = self.data_url(
247 version, data_item='user-data')
248 register_mock_metaserver(userdata_url, md.get('ud', ''))
249 identity_url = self.data_url(
250 version, data_item='dynamic/instance-identity')
251 register_mock_metaserver(
252 identity_url, md.get('id', DYNAMIC_METADATA))
245 else:253 else:
246 instance_id_url = metadata_url + 'instance-id'254 instance_id_url = metadata_url + 'instance-id'
247 if version == ds.min_metadata_version:255 if version == ds.min_metadata_version:
@@ -261,7 +269,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
261 ds = self._setup_ds(269 ds = self._setup_ds(
262 platform_data=self.valid_platform_data,270 platform_data=self.valid_platform_data,
263 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},271 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},
264 md=DEFAULT_METADATA)272 md={'md': DEFAULT_METADATA})
265 find_fallback_path = (273 find_fallback_path = (
266 'cloudinit.sources.DataSourceEc2.net.find_fallback_nic')274 'cloudinit.sources.DataSourceEc2.net.find_fallback_nic')
267 with mock.patch(find_fallback_path) as m_find_fallback:275 with mock.patch(find_fallback_path) as m_find_fallback:
@@ -293,7 +301,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
293 ds = self._setup_ds(301 ds = self._setup_ds(
294 platform_data=self.valid_platform_data,302 platform_data=self.valid_platform_data,
295 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},303 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},
296 md=DEFAULT_METADATA)304 md={'md': DEFAULT_METADATA})
297 find_fallback_path = (305 find_fallback_path = (
298 'cloudinit.sources.DataSourceEc2.net.find_fallback_nic')306 'cloudinit.sources.DataSourceEc2.net.find_fallback_nic')
299 with mock.patch(find_fallback_path) as m_find_fallback:307 with mock.patch(find_fallback_path) as m_find_fallback:
@@ -322,7 +330,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
322 ds = self._setup_ds(330 ds = self._setup_ds(
323 platform_data=self.valid_platform_data,331 platform_data=self.valid_platform_data,
324 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},332 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},
325 md=DEFAULT_METADATA)333 md={'md': DEFAULT_METADATA})
326 ds._network_config = {'cached': 'data'}334 ds._network_config = {'cached': 'data'}
327 self.assertEqual({'cached': 'data'}, ds.network_config)335 self.assertEqual({'cached': 'data'}, ds.network_config)
328336
@@ -338,7 +346,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
338 ds = self._setup_ds(346 ds = self._setup_ds(
339 platform_data=self.valid_platform_data,347 platform_data=self.valid_platform_data,
340 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},348 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},
341 md=old_metadata)349 md={'md': old_metadata})
342 self.assertTrue(ds.get_data())350 self.assertTrue(ds.get_data())
343 # Provide new revision of metadata that contains network data351 # Provide new revision of metadata that contains network data
344 register_mock_metaserver(352 register_mock_metaserver(
@@ -372,7 +380,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
372 ds = self._setup_ds(380 ds = self._setup_ds(
373 platform_data=self.valid_platform_data,381 platform_data=self.valid_platform_data,
374 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},382 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},
375 md=DEFAULT_METADATA)383 md={'md': DEFAULT_METADATA})
376 # Mock 404s on all versions except latest384 # Mock 404s on all versions except latest
377 all_versions = (385 all_versions = (
378 [ds.min_metadata_version] + ds.extended_metadata_versions)386 [ds.min_metadata_version] + ds.extended_metadata_versions)
@@ -399,7 +407,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
399 ds = self._setup_ds(407 ds = self._setup_ds(
400 platform_data=self.valid_platform_data,408 platform_data=self.valid_platform_data,
401 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},409 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},
402 md=DEFAULT_METADATA)410 md={'md': DEFAULT_METADATA})
403 ret = ds.get_data()411 ret = ds.get_data()
404 self.assertTrue(ret)412 self.assertTrue(ret)
405 self.assertEqual(0, m_dhcp.call_count)413 self.assertEqual(0, m_dhcp.call_count)
@@ -412,7 +420,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
412 ds = self._setup_ds(420 ds = self._setup_ds(
413 platform_data=self.valid_platform_data,421 platform_data=self.valid_platform_data,
414 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},422 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},
415 md=DEFAULT_METADATA)423 md={'md': DEFAULT_METADATA})
416 ret = ds.get_data()424 ret = ds.get_data()
417 self.assertTrue(ret)425 self.assertTrue(ret)
418426
@@ -422,7 +430,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
422 ds = self._setup_ds(430 ds = self._setup_ds(
423 platform_data={'uuid': uuid, 'uuid_source': 'dmi', 'serial': ''},431 platform_data={'uuid': uuid, 'uuid_source': 'dmi', 'serial': ''},
424 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},432 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},
425 md=DEFAULT_METADATA)433 md={'md': DEFAULT_METADATA})
426 ret = ds.get_data()434 ret = ds.get_data()
427 self.assertFalse(ret)435 self.assertFalse(ret)
428436
@@ -432,7 +440,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
432 ds = self._setup_ds(440 ds = self._setup_ds(
433 platform_data={'uuid': uuid, 'uuid_source': 'dmi', 'serial': ''},441 platform_data={'uuid': uuid, 'uuid_source': 'dmi', 'serial': ''},
434 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},442 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},
435 md=DEFAULT_METADATA)443 md={'md': DEFAULT_METADATA})
436 ret = ds.get_data()444 ret = ds.get_data()
437 self.assertTrue(ret)445 self.assertTrue(ret)
438446
@@ -442,7 +450,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
442 ds = self._setup_ds(450 ds = self._setup_ds(
443 platform_data=self.valid_platform_data,451 platform_data=self.valid_platform_data,
444 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},452 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},
445 md=DEFAULT_METADATA)453 md={'md': DEFAULT_METADATA})
446 platform_attrs = [454 platform_attrs = [
447 attr for attr in ec2.CloudNames.__dict__.keys()455 attr for attr in ec2.CloudNames.__dict__.keys()
448 if not attr.startswith('__')]456 if not attr.startswith('__')]
@@ -469,7 +477,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
469 ds = self._setup_ds(477 ds = self._setup_ds(
470 platform_data=self.valid_platform_data,478 platform_data=self.valid_platform_data,
471 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},479 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},
472 md=DEFAULT_METADATA)480 md={'md': DEFAULT_METADATA})
473 ret = ds.get_data()481 ret = ds.get_data()
474 self.assertFalse(ret)482 self.assertFalse(ret)
475 self.assertIn(483 self.assertIn(
@@ -499,7 +507,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
499 ds = self._setup_ds(507 ds = self._setup_ds(
500 platform_data=self.valid_platform_data,508 platform_data=self.valid_platform_data,
501 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},509 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},
502 md=DEFAULT_METADATA)510 md={'md': DEFAULT_METADATA})
503511
504 ret = ds.get_data()512 ret = ds.get_data()
505 self.assertTrue(ret)513 self.assertTrue(ret)

Subscribers

People subscribed via source and target branches