1# 2# Licensed under the Apache License, Version 2.0 (the "License"); you may 3# not use this file except in compliance with the License. You may obtain 4# a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 10# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 11# License for the specific language governing permissions and limitations 12# under the License. 13 14import testtools 15 16from heatclient.v1 import template_versions 17 18 19class TemplateVersionManagerTest(testtools.TestCase): 20 21 def setUp(self): 22 super(TemplateVersionManagerTest, self).setUp() 23 24 def test_list_versions(self): 25 expect = ('GET', '/template_versions') 26 27 class FakeResponse(object): 28 def json(self): 29 return {'template_versions': [{'version': '2013-05-23', 30 'type': 'hot'}]} 31 32 class FakeClient(object): 33 def get(self, *args, **kwargs): 34 assert ('GET', args[0]) == expect 35 return FakeResponse() 36 37 manager = template_versions.TemplateVersionManager(FakeClient()) 38 versions = manager.list() 39 self.assertEqual('2013-05-23', getattr(versions[0], 'version')) 40 self.assertEqual('hot', getattr(versions[0], 'type')) 41 42 def test_get(self): 43 expect = ('GET', '/template_versions/heat_template_version.2015-04-30' 44 '/functions') 45 46 class FakeResponse(object): 47 def json(self): 48 return {'template_functions': [{'function': 'get_attr'}]} 49 50 class FakeClient(object): 51 def get(self, *args, **kwargs): 52 assert ('GET', args[0]) == expect 53 return FakeResponse() 54 55 manager = template_versions.TemplateVersionManager(FakeClient()) 56 functions = manager.get('heat_template_version.2015-04-30') 57 self.assertEqual('get_attr', getattr(functions[0], 'function')) 58