Skip to content

Instantly share code, notes, and snippets.

@andersonvom
Last active August 29, 2015 13:57
Show Gist options
  • Save andersonvom/9746782 to your computer and use it in GitHub Desktop.
Save andersonvom/9746782 to your computer and use it in GitHub Desktop.
import mock
from heat.common import exception
from heat.common import template_format
from heat.engine import resource
from heat.engine import scheduler
from heat.tests import utils
from heat.tests.common import HeatTestCase
from ..resources import secret # noqa
stack_template = '''
heat_template_version: 2013-05-23
description: Test template
resources:
secret:
type: OS::Barbican::Secret
properties: {}
'''
@mock.patch.object(secret.client, 'Client')
class TestSecret(HeatTestCase):
def setUp(self):
super(TestSecret, self).setUp()
utils.setup_dummy_db()
self.ctx = utils.dummy_context()
self.template = template_format.parse(stack_template)
self.stack = utils.parse_stack(self.template)
self.props = {
'name': 'foobar-secret',
'payload': 'foobar',
}
self.res_template = self.template['resources']['secret']
self.res_template['properties'] = self.props
self._register_resources()
def _register_resources(self):
for res_name, res_class in secret.resource_mapping().iteritems():
resource._register_class(res_name, res_class)
def test_create_secret(self, mock_client):
barbican = mock_client.return_value.barbican.return_value
resource = secret.Secret('secret', self.res_template, self.stack)
scheduler.TaskRunner(resource.create)() # ############ THIS LINE FAILS ###############
expected_state = (resource.CREATE, resource.COMPLETE)
self.assertEqual(expected_state, resource.state)
args = barbican.secrets.store.call_args[1]
self.assertEqual('foobar', args['payload'])
self.assertEqual('foobar-secret', args['name'])
import mock
from heat.common import exception
from heat.common import template_format
from heat.engine import resource
from heat.engine import scheduler
from heat.tests import utils
from heat.tests.common import HeatTestCase
from ..resources import secret # noqa
stack_template = '''
heat_template_version: 2013-05-23
description: Test template
resources:
secret:
Type: OS::Barbican::Secret
Properties: {}
'''
@mock.patch.object(secret.client, 'Client')
class TestSecret(HeatTestCase):
def setUp(self):
super(TestSecret, self).setUp()
utils.setup_dummy_db()
self.ctx = utils.dummy_context()
self.template = template_format.parse(stack_template)
self.stack = utils.parse_stack(self.template)
self.props = {
'name': 'foobar-secret',
'payload': 'foobar',
}
self.res_template = self.template['resources']['secret']
self.res_template['Properties'] = self.props
self._register_resources()
def _register_resources(self):
for res_name, res_class in secret.resource_mapping().iteritems():
resource._register_class(res_name, res_class)
def test_create_secret(self, mock_client):
barbican = mock_client.return_value.barbican.return_value
resource = secret.Secret('secret', self.res_template, self.stack)
scheduler.TaskRunner(resource.create)()
expected_state = (resource.CREATE, resource.COMPLETE)
self.assertEqual(expected_state, resource.state)
args = barbican.secrets.store.call_args[1]
self.assertEqual('foobar', args['payload'])
self.assertEqual('foobar-secret', args['name'])
Registering OS::Barbican::Secret -> <class 'barbican.resources.secret.Secret'>
Task create from Secret "secret" Stack "test_stack" [47bb5b17-a8df-4ae0-994d-86464f960235] starting
creating Secret "secret" Stack "test_stack" [47bb5b17-a8df-4ae0-994d-86464f960235]
Task create from Secret "secret" Stack "test_stack" [47bb5b17-a8df-4ae0-994d-86464f960235] running
CREATE : Secret "secret" Stack "test_stack" [47bb5b17-a8df-4ae0-994d-86464f960235]
Traceback (most recent call last):
File "/Users/Thoughtworker/development/rackspace/openstack/heat/heat/engine/resource.py", line 405, in _do_action
self.state_set(action, self.IN_PROGRESS)
File "/Users/Thoughtworker/development/rackspace/openstack/heat/heat/engine/resource.py", line 823, in state_set
self._add_event(action, status, reason)
File "/Users/Thoughtworker/development/rackspace/openstack/heat/heat/engine/resource.py", line 762, in _add_event
self.name, self.type())
File "/Users/Thoughtworker/development/rackspace/openstack/heat/heat/engine/resource.py", line 215, in type
return self.t['Type']
KeyError: 'Type'
}}}
Traceback (most recent call last):
File "/Users/Thoughtworker/.pyenv/versions/2.7.3/lib/python2.7/site-packages/mock.py", line 1201, in patched
return func(*args, **keywargs)
#### THIS IS WHERE IT STARTS #####
File "/Users/Thoughtworker/development/rackspace/openstack/heat/contrib/barbican/barbican/tests/test_secret.py", line 62, in test_create_secret
scheduler.TaskRunner(resource.create)()
File "/Users/Thoughtworker/development/rackspace/openstack/heat/heat/engine/scheduler.py", line 140, in __call__
self.start(timeout=timeout)
File "/Users/Thoughtworker/development/rackspace/openstack/heat/heat/engine/scheduler.py", line 161, in start
self.step()
File "/Users/Thoughtworker/development/rackspace/openstack/heat/heat/engine/scheduler.py", line 189, in step
next(self._runner)
File "/Users/Thoughtworker/development/rackspace/openstack/heat/heat/engine/resource.py", line 425, in _do_action
self.state_set(action, self.FAILED, str(failure))
File "/Users/Thoughtworker/development/rackspace/openstack/heat/heat/engine/resource.py", line 823, in state_set
self._add_event(action, status, reason)
File "/Users/Thoughtworker/development/rackspace/openstack/heat/heat/engine/resource.py", line 762, in _add_event
self.name, self.type())
File "/Users/Thoughtworker/development/rackspace/openstack/heat/heat/engine/resource.py", line 215, in type
return self.t['Type']
KeyError: 'Type'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment