diff --git a/heat/tests/test_attributes.py b/heat/tests/test_attributes.py index 9f2f17d7f5..c32526016b 100644 --- a/heat/tests/test_attributes.py +++ b/heat/tests/test_attributes.py @@ -89,53 +89,59 @@ class AttributeTest(common.HeatTestCase): class AttributesTest(common.HeatTestCase): """Test the Attributes class.""" - attributes_schema = { - "test1": attributes.Schema("Test attrib 1"), - "test2": attributes.Schema("Test attrib 2"), - "test3": attributes.Schema( - "Test attrib 3", - cache_mode=attributes.Schema.CACHE_NONE) - } - def setUp(self): super(AttributesTest, self).setUp() - self.addCleanup(self.m.VerifyAll) + + self.resolver = mock.MagicMock() + self.attributes_schema = { + "test1": attributes.Schema("Test attrib 1"), + "test2": attributes.Schema("Test attrib 2"), + "test3": attributes.Schema( + "Test attrib 3", + cache_mode=attributes.Schema.CACHE_NONE) + } def test_get_attribute(self): """Test that we get the attribute values we expect.""" - test_resolver = lambda x: "value1" - self.m.ReplayAll() + self.resolver.return_value = "value1" attribs = attributes.Attributes('test resource', self.attributes_schema, - test_resolver) + self.resolver) self.assertEqual("value1", attribs['test1']) + self.resolver.assert_called_once_with('test1') def test_attributes_representation(self): """Test that attributes are displayed correct.""" - test_resolver = lambda x: "value1" + self.resolver.return_value = "value1" attribs = attributes.Attributes('test resource', self.attributes_schema, - test_resolver) + self.resolver) msg = 'Attributes for test resource:\n\tvalue1\n\tvalue1\n\tvalue1' self.assertEqual(msg, str(attribs)) + calls = [ + mock.call('test1'), + mock.call('test2'), + mock.call('test3') + ] + self.resolver.assert_has_calls(calls, any_order=True) def test_get_attribute_none(self): """Test that we get the attribute values we expect.""" - test_resolver = lambda x: None - self.m.ReplayAll() + self.resolver.return_value = None attribs = attributes.Attributes('test resource', self.attributes_schema, - test_resolver) + self.resolver) self.assertIsNone(attribs['test1']) + self.resolver.assert_called_once_with('test1') def test_get_attribute_nonexist(self): """Test that we get the attribute values we expect.""" - test_resolver = lambda x: "value1" - self.m.ReplayAll() + self.resolver.return_value = "value1" attribs = attributes.Attributes('test resource', self.attributes_schema, - test_resolver) + self.resolver) self.assertRaises(KeyError, attribs.__getitem__, 'not there') + self.assertFalse(self.resolver.called) def test_as_outputs(self): """Test that Output format works as expected.""" @@ -153,42 +159,45 @@ class AttributesTest(common.HeatTestCase): "Description": "Test attrib 3" } } - MyTestResourceClass = self.m.CreateMockAnything() + MyTestResourceClass = mock.MagicMock() MyTestResourceClass.attributes_schema = { "test1": attributes.Schema("Test attrib 1"), "test2": attributes.Schema("Test attrib 2"), "test3": attributes.Schema("Test attrib 3"), } - self.m.ReplayAll() self.assertEqual( expected, attributes.Attributes.as_outputs("test_resource", MyTestResourceClass)) def test_caching_local(self): - value = 'value1' - test_resolver = lambda x: value - self.m.ReplayAll() + self.resolver.side_effect = ["value1", "value1 changed"] attribs = attributes.Attributes('test resource', self.attributes_schema, - test_resolver) + self.resolver) self.assertEqual("value1", attribs['test1']) - value = 'value1 changed' self.assertEqual("value1", attribs['test1']) attribs.reset_resolved_values() self.assertEqual("value1 changed", attribs['test1']) + calls = [ + mock.call('test1'), + mock.call('test1') + ] + self.resolver.assert_has_calls(calls) def test_caching_none(self): - value = 'value3' - test_resolver = lambda x: value - self.m.ReplayAll() + self.resolver.side_effect = ["value3", "value3 changed"] attribs = attributes.Attributes('test resource', self.attributes_schema, - test_resolver) + self.resolver) self.assertEqual("value3", attribs['test3']) - value = 'value3 changed' self.assertEqual("value3 changed", attribs['test3']) + calls = [ + mock.call('test3'), + mock.call('test3') + ] + self.resolver.assert_has_calls(calls) class AttributesTypeTest(common.HeatTestCase):