From 4f19c8a26cd1424f0a5f6d53f7fda3db8812674f Mon Sep 17 00:00:00 2001 From: huangtianhua Date: Tue, 10 Nov 2015 15:36:17 +0800 Subject: [PATCH] Define engine service in setUp() Init test engine service in setUp() instead of defining in each tests. Change-Id: I6ecb5355b0d07248a0d3d5a908c35a6d33d13ed1 --- heat/tests/test_validate.py | 113 ++++++++++++++++-------------------- 1 file changed, 49 insertions(+), 64 deletions(-) diff --git a/heat/tests/test_validate.py b/heat/tests/test_validate.py index a5e0ecf932..152ebfeb51 100644 --- a/heat/tests/test_validate.py +++ b/heat/tests/test_validate.py @@ -912,6 +912,7 @@ class ValidateTest(common.HeatTestCase): return_value=True) self.mock_is_service_available = self.mock_isa.start() self.addCleanup(self.mock_isa.stop) + self.engine = service.EngineService('a', 't') def _mock_get_image_id_success(self, imageId_input, imageId): self.m.StubOutWithMock(glance.GlanceClientPlugin, 'get_image_id') @@ -939,8 +940,7 @@ class ValidateTest(common.HeatTestCase): def test_validate_ref_valid(self): t = template_format.parse(test_template_ref % 'WikiDatabase') - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + res = dict(self.engine.validate_template(self.ctx, t, {})) self.assertEqual('test.', res['Description']) def test_validate_with_environment(self): @@ -948,9 +948,8 @@ class ValidateTest(common.HeatTestCase): test_template = test_template.replace('AWS::EC2::Instance', 'My::Instance') t = template_format.parse(test_template) - engine = service.EngineService('a', 't') params = {'resource_registry': {'My::Instance': 'AWS::EC2::Instance'}} - res = dict(engine.validate_template(self.ctx, t, params)) + res = dict(self.engine.validate_template(self.ctx, t, params)) self.assertEqual('test.', res['Description']) def test_validate_hot_valid(self): @@ -962,32 +961,28 @@ class ValidateTest(common.HeatTestCase): my_instance: type: AWS::EC2::Instance """) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + + res = dict(self.engine.validate_template(self.ctx, t, {})) self.assertEqual('test.', res['Description']) def test_validate_ref_invalid(self): t = template_format.parse(test_template_ref % 'WikiDatabasez') - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + res = dict(self.engine.validate_template(self.ctx, t, {})) self.assertNotEqual(res['Description'], 'Successfully validated') def test_validate_findinmap_valid(self): t = template_format.parse(test_template_findinmap_valid) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + res = dict(self.engine.validate_template(self.ctx, t, {})) self.assertEqual('test.', res['Description']) def test_validate_findinmap_invalid(self): t = template_format.parse(test_template_findinmap_invalid) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + res = dict(self.engine.validate_template(self.ctx, t, {})) self.assertNotEqual(res['Description'], 'Successfully validated') def test_validate_parameters(self): t = template_format.parse(test_template_ref % 'WikiDatabase') - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + res = dict(self.engine.validate_template(self.ctx, t, {})) # Note: the assertion below does not expect a CFN dict of the parameter # but a dict of the parameters.Schema object. # For API CFN backward compatibility, formating to CFN is done in the @@ -1002,8 +997,7 @@ class ValidateTest(common.HeatTestCase): def test_validate_parameters_env_override(self): t = template_format.parse(test_template_default_override) env_params = {'net_name': 'betternetname'} - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, env_params)) + res = dict(self.engine.validate_template(self.ctx, t, env_params)) self.assertEqual('defaultnet', res['Parameters']['net_name']['Default']) self.assertEqual('betternetname', @@ -1012,8 +1006,8 @@ class ValidateTest(common.HeatTestCase): def test_validate_parameters_env_provided(self): t = template_format.parse(test_template_no_default) env_params = {'net_name': 'betternetname'} - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, env_params)) + + res = dict(self.engine.validate_template(self.ctx, t, env_params)) self.assertEqual('betternetname', res['Parameters']['net_name']['Value']) self.assertNotIn('Default', res['Parameters']['net_name']) @@ -1028,14 +1022,14 @@ class ValidateTest(common.HeatTestCase): my_instance: type: AWS::EC2::Instance """) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + + res = dict(self.engine.validate_template(self.ctx, t, {})) self.assertEqual({}, res['Parameters']) def test_validate_hot_parameter_label(self): t = template_format.parse(test_template_hot_parameter_label) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + + res = dict(self.engine.validate_template(self.ctx, t, {})) parameters = res['Parameters'] expected = {'KeyName': { @@ -1048,8 +1042,8 @@ class ValidateTest(common.HeatTestCase): def test_validate_hot_no_parameter_label(self): t = template_format.parse(test_template_hot_no_parameter_label) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + + res = dict(self.engine.validate_template(self.ctx, t, {})) parameters = res['Parameters'] expected = {'KeyName': { @@ -1062,8 +1056,8 @@ class ValidateTest(common.HeatTestCase): def test_validate_cfn_parameter_label(self): t = template_format.parse(test_template_cfn_parameter_label) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + + res = dict(self.engine.validate_template(self.ctx, t, {})) parameters = res['Parameters'] expected = {'KeyName': { @@ -1089,8 +1083,8 @@ class ValidateTest(common.HeatTestCase): param5: type: boolean """) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + + res = dict(self.engine.validate_template(self.ctx, t, {})) parameters = res['Parameters'] # make sure all the types are reported correctly self.assertEqual('String', parameters["param1"]["Type"]) @@ -1106,8 +1100,8 @@ class ValidateTest(common.HeatTestCase): description: test. resources: """) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + + res = dict(self.engine.validate_template(self.ctx, t, {})) expected = {"Description": "test.", "Parameters": {}} self.assertEqual(expected, res) @@ -1119,24 +1113,24 @@ class ValidateTest(common.HeatTestCase): description: test. outputs: """) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + + res = dict(self.engine.validate_template(self.ctx, t, {})) expected = {"Description": "test.", "Parameters": {}} self.assertEqual(expected, res) def test_validate_properties(self): t = template_format.parse(test_template_invalid_property) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + + res = dict(self.engine.validate_template(self.ctx, t, {})) self.assertEqual( {'Error': 'Property error: Resources.WikiDatabase.Properties: ' 'Unknown Property UnknownProperty'}, res) def test_invalid_resources(self): t = template_format.parse(test_template_invalid_resources) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + + res = dict(self.engine.validate_template(self.ctx, t, {})) self.assertEqual({'Error': 'Resources must contain Resource. ' 'Found a [%s] instead' % six.text_type}, res) @@ -1155,8 +1149,7 @@ class ValidateTest(common.HeatTestCase): } """) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t)) + res = dict(self.engine.validate_template(self.ctx, t)) self.assertEqual({'Error': 'The template section is invalid: Output'}, res) @@ -1170,15 +1163,14 @@ class ValidateTest(common.HeatTestCase): output: """) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t)) + res = dict(self.engine.validate_template(self.ctx, t)) self.assertEqual({'Error': 'The template section is invalid: output'}, res) def test_unimplemented_property(self): t = template_format.parse(test_template_unimplemented_property) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + + res = dict(self.engine.validate_template(self.ctx, t, {})) self.assertEqual( {'Error': 'Property error: Resources.WikiDatabase.Properties: ' 'Property SourceDestCheck not implemented yet'}, @@ -1186,21 +1178,21 @@ class ValidateTest(common.HeatTestCase): def test_invalid_deletion_policy(self): t = template_format.parse(test_template_invalid_deletion_policy) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + + res = dict(self.engine.validate_template(self.ctx, t, {})) self.assertEqual({'Error': 'Invalid deletion policy "Destroy"'}, res) def test_snapshot_deletion_policy(self): t = template_format.parse(test_template_snapshot_deletion_policy) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + + res = dict(self.engine.validate_template(self.ctx, t, {})) self.assertEqual( {'Error': '"Snapshot" deletion policy not supported'}, res) def test_volume_snapshot_deletion_policy(self): t = template_format.parse(test_template_volume_snapshot) - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, t, {})) + + res = dict(self.engine.validate_template(self.ctx, t, {})) self.assertEqual({'Description': u'test.', 'Parameters': {}}, res) def test_validate_template_without_resources(self): @@ -1208,8 +1200,7 @@ class ValidateTest(common.HeatTestCase): heat_template_version: 2013-05-23 ''') - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, hot_tpl, {})) + res = dict(self.engine.validate_template(self.ctx, hot_tpl, {})) expected = {'Description': 'No description', 'Parameters': {}} self.assertEqual(expected, res) @@ -1229,8 +1220,7 @@ class ValidateTest(common.HeatTestCase): foo: bar ''') - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, hot_tpl, {})) + res = dict(self.engine.validate_template(self.ctx, hot_tpl, {})) self.assertEqual({'Error': '"Type" is not a valid keyword ' 'inside a resource definition'}, res) @@ -1250,8 +1240,7 @@ class ValidateTest(common.HeatTestCase): foo: bar ''') - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, hot_tpl, {})) + res = dict(self.engine.validate_template(self.ctx, hot_tpl, {})) self.assertEqual({'Error': '"Properties" is not a valid keyword ' 'inside a resource definition'}, res) @@ -1271,8 +1260,7 @@ class ValidateTest(common.HeatTestCase): foo: bar ''') - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, hot_tpl, {})) + res = dict(self.engine.validate_template(self.ctx, hot_tpl, {})) self.assertEqual({'Error': '"Metadata" is not a valid keyword ' 'inside a resource definition'}, res) @@ -1292,8 +1280,7 @@ class ValidateTest(common.HeatTestCase): foo: bar ''') - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, hot_tpl, {})) + res = dict(self.engine.validate_template(self.ctx, hot_tpl, {})) self.assertEqual({'Error': '"DependsOn" is not a valid keyword ' 'inside a resource definition'}, res) @@ -1313,8 +1300,7 @@ class ValidateTest(common.HeatTestCase): foo: bar ''') - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, hot_tpl, {})) + res = dict(self.engine.validate_template(self.ctx, hot_tpl, {})) self.assertEqual({'Error': '"DeletionPolicy" is not a valid ' 'keyword inside a resource definition'}, res) @@ -1335,8 +1321,7 @@ class ValidateTest(common.HeatTestCase): foo: bar ''') - engine = service.EngineService('a', 't') - res = dict(engine.validate_template(self.ctx, hot_tpl, {})) + res = dict(self.engine.validate_template(self.ctx, hot_tpl, {})) self.assertEqual({'Error': '"UpdatePolicy" is not a valid ' 'keyword inside a resource definition'}, res) @@ -1675,10 +1660,10 @@ class ValidateTest(common.HeatTestCase): my_instance: type: AWS::EC2::Instance """) - engine = service.EngineService('a', 't') + self.mock_is_service_available.return_value = False ex = self.assertRaises(dispatcher.ExpectedException, - engine.validate_template, + self.engine.validate_template, self.ctx, t, {})