From 791c245c140046b58ecef43aeeaed35776f8a1c2 Mon Sep 17 00:00:00 2001 From: Crag Wolfe Date: Tue, 30 Aug 2016 00:02:27 -0400 Subject: Add resource_properties_data assoc. to resource, event objs Add the resource_properties_data association to resource and event objects. The resource and event engine objects do not use yet it but will soon. Change-Id: Idecaafffbc5e9bfcd2355e2a165836a5ed89b16f --- heat/tests/test_resource.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'heat/tests/test_resource.py') diff --git a/heat/tests/test_resource.py b/heat/tests/test_resource.py index 23daf12d3..ea47c61bc 100644 --- a/heat/tests/test_resource.py +++ b/heat/tests/test_resource.py @@ -28,6 +28,7 @@ from heat.common.i18n import _ from heat.common import short_id from heat.common import timeutils from heat.db.sqlalchemy import api as db_api +from heat.db.sqlalchemy import models from heat.engine import attributes from heat.engine.cfn import functions as cfn_funcs from heat.engine import clients @@ -48,6 +49,7 @@ from heat.engine import template from heat.engine import translation from heat.objects import resource as resource_objects from heat.objects import resource_data as resource_data_object +from heat.objects import resource_properties_data as rpd_object from heat.tests import common from heat.tests import generic_resource as generic_rsrc from heat.tests import utils @@ -552,6 +554,40 @@ class ResourceTest(common.HeatTestCase): res._store_or_update(res.UPDATE, res.COMPLETE, 'should not change') self.assertIsNone(res.updated_time) + def test_resource_object_resource_properties_data(self): + cfg.CONF.set_override('encrypt_parameters_and_properties', True, + enforce_type=True) + data = {'p1': 'i see', + 'p2': 'good times, good times'} + rpd_obj = rpd_object.ResourcePropertiesData().create( + self.stack.context, data) + rpd_db_obj = self.stack.context.session.query( + models.ResourcePropertiesData).get(rpd_obj.id) + res_obj1 = resource_objects.Resource().create( + self.stack.context, + {'stack_id': self.stack.id, + 'uuid': str(uuid.uuid4()), + 'rsrc_prop_data': rpd_db_obj}) + res_obj2 = resource_objects.Resource().create( + self.stack.context, + {'stack_id': self.stack.id, + 'uuid': str(uuid.uuid4()), + 'rsrc_prop_data_id': rpd_db_obj.id}) + ctx2 = utils.dummy_context() + res_obj1 = resource_objects.Resource().get_obj( + ctx2, res_obj1.id) + res_obj2 = resource_objects.Resource().get_obj( + ctx2, res_obj2.id) + + # verify the resource_properties_data association + # can be set by id or object + self.assertEqual(rpd_db_obj.id, res_obj1.rsrc_prop_data.id) + self.assertEqual(res_obj1.rsrc_prop_data.id, + res_obj2.rsrc_prop_data.id) + # properties data appears unencrypted to resource object + self.assertEqual(data, res_obj1.rsrc_prop_data.data) + self.assertEqual(data, res_obj2.rsrc_prop_data.data) + def test_store_or_update(self): tmpl = rsrc_defn.ResourceDefinition('test_resource', 'Foo') res = generic_rsrc.GenericResource('test_res_upd', tmpl, self.stack) -- cgit v1.2.1