From a4b427fca476da253062167671db56ce3f1ee4da Mon Sep 17 00:00:00 2001 From: Andriy Popovych Date: Thu, 5 May 2016 17:13:17 +0300 Subject: [PATCH] Use text_format_safe instead of text_format Use text_format_safe for traversing plugin attributes Change-Id: Ib21a7386fe7cea982c98cfeaaa26040463f72b9d Closes-Bug: #1576197 --- nailgun/nailgun/objects/cluster.py | 2 ++ nailgun/nailgun/test/unit/test_objects.py | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/nailgun/nailgun/objects/cluster.py b/nailgun/nailgun/objects/cluster.py index 5874a4c935..e181a7c93e 100644 --- a/nailgun/nailgun/objects/cluster.py +++ b/nailgun/nailgun/objects/cluster.py @@ -47,6 +47,7 @@ from nailgun.policy.merge import NetworkRoleMergePolicy from nailgun.settings import settings from nailgun.utils import AttributesGenerator from nailgun.utils import dict_merge +from nailgun.utils import text_format_safe from nailgun.utils import traverse @@ -363,6 +364,7 @@ class Cluster(NailgunObject): plugin_attrs = traverse( plugin_attrs, + formatter=text_format_safe, formatter_context={'cluster': instance, 'settings': settings}, keywords={'generator': AttributesGenerator.evaluate} ) diff --git a/nailgun/nailgun/test/unit/test_objects.py b/nailgun/nailgun/test/unit/test_objects.py index 0c00ffe21c..17861b8379 100644 --- a/nailgun/nailgun/test/unit/test_objects.py +++ b/nailgun/nailgun/test/unit/test_objects.py @@ -1679,6 +1679,20 @@ class TestClusterObject(BaseTestCase): updated_attributes['editable']['test_plugin'] ['plugin_name_text']['value']) + def test_get_attributes_with_plugin(self): + cluster = self.env.create_cluster(api=False) + self.env.create_plugin( + name='test_plugin', + version='1.0.0', + package_version='4.0.0', + cluster=cluster, + attributes_metadata=self.env.get_default_plugin_env_config( + value='{}') + ) + attr = objects.Cluster.get_attributes(cluster, True) + plugin_attrs = attr.editable['test_plugin']['metadata']['versions'][0] + self.assertEqual('{}', plugin_attrs['plugin_name_text']['value']) + class TestClusterObjectVirtRoles(BaseTestCase):