summaryrefslogtreecommitdiff
path: root/heat/tests/test_resource.py
diff options
context:
space:
mode:
authorCrag Wolfe <cwolfe@redhat.com>2016-08-30 00:02:27 -0400
committerCrag Wolfe <cwolfe@redhat.com>2016-12-22 10:59:01 -0800
commit791c245c140046b58ecef43aeeaed35776f8a1c2 (patch)
tree9b30436ff5a58cf2c3396f31b1f3d33cf6f93992 /heat/tests/test_resource.py
parent1ea6bb8bf62e5d98d71afff0bf4a1b93af3dfddd (diff)
downloadheat-791c245c140046b58ecef43aeeaed35776f8a1c2.tar.gz
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
Diffstat (limited to 'heat/tests/test_resource.py')
-rw-r--r--heat/tests/test_resource.py36
1 files changed, 36 insertions, 0 deletions
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)