Browse Source

Use __iter__ method of Attributes class in __repr__ method

Join method expects list, but six.itervalues(self._attributes)  returns
a Attribute instance, so we should use own __iter__ method for building
list of values.

Closes-Bug: #1473974

Change-Id: I7c5d4a5a8d0142156c3416347940b9e90ed8df5c
changes/59/200059/2
Sergey Kraynev 7 years ago committed by skraynev
parent
commit
658d61ecee
  1. 2
      heat/engine/attributes.py
  2. 9
      heat/tests/test_attributes.py

2
heat/engine/attributes.py

@ -233,7 +233,7 @@ class Attributes(collections.Mapping):
def __repr__(self):
return ("Attributes for %s:\n\t" % self._resource_name +
'\n\t'.join(six.itervalues(self._attributes)))
'\n\t'.join(six.itervalues(self)))
def select_from_attribute(attribute_value, path):

9
heat/tests/test_attributes.py

@ -110,6 +110,15 @@ class AttributesTest(common.HeatTestCase):
test_resolver)
self.assertEqual("value1", attribs['test1'])
def test_attributes_representation(self):
"""Test that attributes are displayed correct."""
test_resolver = lambda x: "value1"
attribs = attributes.Attributes('test resource',
self.attributes_schema,
test_resolver)
msg = 'Attributes for test resource:\n\tvalue1\n\tvalue1\n\tvalue1'
self.assertEqual(msg, str(attribs))
def test_get_attribute_none(self):
"""Test that we get the attribute values we expect."""
test_resolver = lambda x: None

Loading…
Cancel
Save