Merge "remove mox usage from test_subscription"

This commit is contained in:
Zuul 2018-04-11 03:54:52 +00:00 committed by Gerrit Code Review
commit 2c63287420
1 changed files with 142 additions and 207 deletions

View File

@ -89,15 +89,16 @@ class FakeSubscription(object):
raise KeyError(key)
def delete(self):
pass
self._deleted = True
@mock.patch.object(resource.Resource, "client")
class ZaqarSubscriptionTest(common.HeatTestCase):
def setUp(self):
super(ZaqarSubscriptionTest, self).setUp()
self.fc = self.m.CreateMockAnything()
self.fc = mock.Mock()
self.patchobject(resource.Resource, 'client', return_value=self.fc)
self.ctx = utils.dummy_context()
self.subscr_id = "58138648c1e2eb7355d62137"
def parse_stack(self, t):
stack_name = 'test_stack'
@ -106,7 +107,7 @@ class ZaqarSubscriptionTest(common.HeatTestCase):
self.stack.validate()
self.stack.store()
def test_validate_subscriber_type(self, mock_client):
def test_validate_subscriber_type(self):
t = template_format.parse(subscr_template)
t['Resources']['MySubscription']['Properties']['subscriber'] = "foo:ba"
stack_name = 'test_stack'
@ -119,144 +120,103 @@ class ZaqarSubscriptionTest(common.HeatTestCase):
'mailto, trust+http, trust+https.',
six.text_type(exc))
def test_create(self, mock_client):
def test_create(self):
t = template_format.parse(subscr_template)
self.parse_stack(t)
subscr = self.stack['MySubscription']
subscr_id = "58138648c1e2eb7355d62137"
self.m.StubOutWithMock(subscr, 'client')
subscr.client().MultipleTimes().AndReturn(self.fc)
fake_subscr = FakeSubscription(subscr.properties['queue_name'],
subscr_id)
self.m.StubOutWithMock(self.fc, 'subscription')
self.fc.subscription(subscr.properties['queue_name'],
options={'key1': 'value1'},
subscriber=u'mailto:name@domain.com',
ttl=3600).AndReturn(fake_subscr)
self.m.ReplayAll()
self.subscr_id)
self.fc.subscription.return_value = fake_subscr
scheduler.TaskRunner(subscr.create)()
self.assertEqual(subscr_id, subscr.FnGetRefId())
self.assertEqual(self.subscr_id, subscr.FnGetRefId())
self.fc.subscription.assert_called_once_with(
subscr.properties['queue_name'],
options={'key1': 'value1'},
subscriber=u'mailto:name@domain.com',
ttl=3600)
self.m.VerifyAll()
def test_delete(self, mock_client):
def test_delete(self):
t = template_format.parse(subscr_template)
self.parse_stack(t)
subscr = self.stack['MySubscription']
subscr_id = "58138648c1e2eb7355d62137"
self.m.StubOutWithMock(subscr, 'client')
subscr.client().MultipleTimes().AndReturn(self.fc)
fake_subscr = FakeSubscription(subscr.properties['queue_name'],
subscr_id)
self.m.StubOutWithMock(self.fc, 'subscription')
self.fc.subscription(subscr.properties['queue_name'],
options={'key1': 'value1'},
subscriber=u'mailto:name@domain.com',
ttl=3600).AndReturn(fake_subscr)
self.fc.subscription(subscr.properties['queue_name'],
id=subscr_id,
auto_create=False).AndReturn(fake_subscr)
self.m.StubOutWithMock(fake_subscr, 'delete')
fake_subscr.delete()
self.m.ReplayAll()
self.subscr_id)
self.fc.subscription.return_value = fake_subscr
scheduler.TaskRunner(subscr.create)()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
options={'key1': 'value1'},
subscriber=u'mailto:name@domain.com',
ttl=3600)
scheduler.TaskRunner(subscr.delete)()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
id=self.subscr_id,
auto_create=False)
self.assertTrue(getattr(fake_subscr, '_deleted', False))
self.m.VerifyAll()
def test_delete_not_found(self, mock_client):
def test_delete_not_found(self):
t = template_format.parse(subscr_template)
self.parse_stack(t)
subscr = self.stack['MySubscription']
subscr_id = "58138648c1e2eb7355d62137"
self.m.StubOutWithMock(subscr, 'client')
subscr.client().MultipleTimes().AndReturn(self.fc)
fake_subscr = FakeSubscription(subscr.properties['queue_name'],
subscr_id)
self.m.StubOutWithMock(self.fc, 'subscription')
self.fc.subscription(subscr.properties['queue_name'],
options={'key1': 'value1'},
subscriber=u'mailto:name@domain.com',
ttl=3600).AndReturn(fake_subscr)
self.fc.subscription(subscr.properties['queue_name'],
id=subscr_id,
auto_create=False).AndRaise(ResourceNotFound())
self.m.ReplayAll()
self.subscr_id)
self.fc.subscription.side_effect = [fake_subscr, ResourceNotFound]
scheduler.TaskRunner(subscr.create)()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
options={'key1': 'value1'},
subscriber=u'mailto:name@domain.com',
ttl=3600)
scheduler.TaskRunner(subscr.delete)()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
id=self.subscr_id,
auto_create=False)
self.m.VerifyAll()
def test_update_in_place(self, mock_client):
def test_update_in_place(self):
t = template_format.parse(subscr_template)
self.parse_stack(t)
subscr = self.stack['MySubscription']
subscr_id = "58138648c1e2eb7355d62137"
self.m.StubOutWithMock(subscr, 'client')
subscr.client().MultipleTimes().AndReturn(self.fc)
fake_subscr = FakeSubscription(subscr.properties['queue_name'],
subscr_id)
self.m.StubOutWithMock(self.fc, 'subscription')
self.fc.subscription(subscr.properties['queue_name'],
options={'key1': 'value1'},
subscriber=u'mailto:name@domain.com',
ttl=3600).AndReturn(fake_subscr)
self.fc.subscription(subscr.properties['queue_name'],
id=subscr_id,
auto_create=False).AndReturn(fake_subscr)
self.m.StubOutWithMock(fake_subscr, 'update')
fake_subscr.update({'ttl': 3601, 'options': {'key1': 'value1'},
'subscriber': 'mailto:name@domain.com'})
self.m.ReplayAll()
self.subscr_id)
self.fc.subscription.return_value = fake_subscr
t = template_format.parse(subscr_template)
new_subscr = t['Resources']['MySubscription']
new_subscr['Properties']['ttl'] = "3601"
resource_defns = template.Template(t).resource_definitions(self.stack)
scheduler.TaskRunner(subscr.create)()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
options={'key1': 'value1'},
subscriber=u'mailto:name@domain.com',
ttl=3600)
scheduler.TaskRunner(subscr.update, resource_defns['MySubscription'])()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
id=self.subscr_id,
auto_create=False)
self.m.VerifyAll()
def test_update_replace(self, mock_client):
def test_update_replace(self):
t = template_format.parse(subscr_template)
self.parse_stack(t)
subscr = self.stack['MySubscription']
subscr_id = "58138648c1e2eb7355d62137"
self.m.StubOutWithMock(subscr, 'client')
subscr.client().MultipleTimes().AndReturn(self.fc)
fake_subscr = FakeSubscription(subscr.properties['queue_name'],
subscr_id)
self.m.StubOutWithMock(self.fc, 'subscription')
self.fc.subscription(subscr.properties['queue_name'],
options={'key1': 'value1'},
subscriber=u'mailto:name@domain.com',
ttl=3600).AndReturn(fake_subscr)
self.m.ReplayAll()
self.subscr_id)
self.fc.subscription.return_value = fake_subscr
t = template_format.parse(subscr_template)
t['Resources']['MySubscription']['Properties']['queue_name'] = 'foo'
@ -264,45 +224,40 @@ class ZaqarSubscriptionTest(common.HeatTestCase):
new_subscr = resource_defns['MySubscription']
scheduler.TaskRunner(subscr.create)()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
options={'key1': 'value1'},
subscriber=u'mailto:name@domain.com',
ttl=3600)
err = self.assertRaises(resource.UpdateReplace,
scheduler.TaskRunner(subscr.update,
new_subscr))
msg = 'The Resource MySubscription requires replacement.'
self.assertEqual(msg, six.text_type(err))
self.m.VerifyAll()
def test_show_resource(self, mock_client):
def test_show_resource(self):
t = template_format.parse(subscr_template)
self.parse_stack(t)
subscr = self.stack['MySubscription']
subscr_id = "58138648c1e2eb7355d62137"
self.m.StubOutWithMock(subscr, 'client')
subscr.client().MultipleTimes().AndReturn(self.fc)
fake_subscr = FakeSubscription(subscr.properties['queue_name'],
subscr_id)
self.subscr_id)
props = t['Resources']['MySubscription']['Properties']
fake_subscr.ttl = props['ttl']
fake_subscr.subscriber = props['subscriber']
fake_subscr.options = props['options']
self.m.StubOutWithMock(self.fc, 'subscription')
self.fc.subscription(subscr.properties['queue_name'],
options={'key1': 'value1'},
subscriber=u'mailto:name@domain.com',
ttl=3600).AndReturn(fake_subscr)
self.fc.subscription(
subscr.properties['queue_name'], id=subscr_id,
auto_create=False).MultipleTimes().AndReturn(fake_subscr)
self.m.ReplayAll()
self.fc.subscription.return_value = fake_subscr
rsrc_data = props.copy()
rsrc_data['id'] = subscr_id
rsrc_data['id'] = self.subscr_id
scheduler.TaskRunner(subscr.create)()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
options={'key1': 'value1'},
subscriber=u'mailto:name@domain.com',
ttl=3600)
self.assertEqual(rsrc_data, subscr._show_resource())
self.assertEqual(
{'queue_name': props['queue_name'],
@ -312,7 +267,10 @@ class ZaqarSubscriptionTest(common.HeatTestCase):
subscr.parse_live_resource_data(subscr.properties,
subscr._show_resource()))
self.m.VerifyAll()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
id=self.subscr_id,
auto_create=False)
class JsonString(object):
@ -329,14 +287,15 @@ class JsonString(object):
return str(self)
@mock.patch.object(resource.Resource, "client")
class ZaqarMistralTriggerTest(common.HeatTestCase):
def setUp(self):
super(ZaqarMistralTriggerTest, self).setUp()
self.fc = self.m.CreateMockAnything()
self.fc = mock.Mock()
self.patchobject(resource.Resource, 'client', return_value=self.fc)
self.ctx = utils.dummy_context()
self.patchobject(mistral_client_plugin.WorkflowConstraint,
'validate', return_value=True)
self.subscr_id = "58138648c1e2eb7355d62137"
stack_name = 'test_stack'
t = template_format.parse(mistral_template)
@ -368,90 +327,64 @@ class ZaqarMistralTriggerTest(common.HeatTestCase):
})
}
def test_create(self, mock_client):
def test_create(self):
subscr = self.subscr
subscr_id = "58138648c1e2eb7355d62137"
fake_subscr = FakeSubscription(subscr.properties['queue_name'],
subscr_id)
self.m.StubOutWithMock(self.fc, 'subscription')
self.fc.subscription(subscr.properties['queue_name'],
options=self.options,
subscriber=self.subscriber,
ttl=220367260800).AndReturn(fake_subscr)
self.m.ReplayAll()
self.subscr_id)
self.fc.subscription.return_value = fake_subscr
scheduler.TaskRunner(subscr.create)()
self.assertEqual(subscr_id, subscr.FnGetRefId())
self.assertEqual(self.subscr_id, subscr.FnGetRefId())
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
options=self.options,
subscriber=self.subscriber,
ttl=220367260800)
self.m.VerifyAll()
def test_delete(self, mock_client):
def test_delete(self):
subscr = self.subscr
subscr_id = "58138648c1e2eb7355d62137"
fake_subscr = FakeSubscription(subscr.properties['queue_name'],
subscr_id)
self.m.StubOutWithMock(self.fc, 'subscription')
self.fc.subscription(subscr.properties['queue_name'],
options=self.options,
subscriber=self.subscriber,
ttl=220367260800).AndReturn(fake_subscr)
self.fc.subscription(subscr.properties['queue_name'],
id=subscr_id,
auto_create=False).AndReturn(fake_subscr)
self.m.StubOutWithMock(fake_subscr, 'delete')
fake_subscr.delete()
self.m.ReplayAll()
self.subscr_id)
self.fc.subscription.return_value = fake_subscr
scheduler.TaskRunner(subscr.create)()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
options=self.options,
subscriber=self.subscriber,
ttl=220367260800)
scheduler.TaskRunner(subscr.delete)()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
id=self.subscr_id,
auto_create=False)
self.assertTrue(getattr(fake_subscr, '_deleted', False))
self.m.VerifyAll()
def test_delete_not_found(self, mock_client):
def test_delete_not_found(self):
subscr = self.subscr
subscr_id = "58138648c1e2eb7355d62137"
fake_subscr = FakeSubscription(subscr.properties['queue_name'],
subscr_id)
self.m.StubOutWithMock(self.fc, 'subscription')
self.fc.subscription(subscr.properties['queue_name'],
options=self.options,
subscriber=self.subscriber,
ttl=220367260800).AndReturn(fake_subscr)
self.fc.subscription(subscr.properties['queue_name'],
id=subscr_id,
auto_create=False).AndRaise(ResourceNotFound())
self.m.ReplayAll()
self.subscr_id)
self.fc.subscription.side_effect = [fake_subscr, ResourceNotFound]
scheduler.TaskRunner(subscr.create)()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
options=self.options,
subscriber=self.subscriber,
ttl=220367260800)
scheduler.TaskRunner(subscr.delete)()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
id=self.subscr_id,
auto_create=False)
self.m.VerifyAll()
def test_update_in_place(self, mock_client):
def test_update_in_place(self):
subscr = self.subscr
subscr_id = "58138648c1e2eb7355d62137"
fake_subscr = FakeSubscription(subscr.properties['queue_name'],
subscr_id)
self.m.StubOutWithMock(self.fc, 'subscription')
self.fc.subscription(subscr.properties['queue_name'],
options=self.options,
subscriber=self.subscriber,
ttl=220367260800).AndReturn(fake_subscr)
self.fc.subscription(subscr.properties['queue_name'],
id=subscr_id,
auto_create=False).AndReturn(fake_subscr)
self.m.StubOutWithMock(fake_subscr, 'update')
fake_subscr.update({'ttl': 3601, 'subscriber': self.subscriber,
'options': self.options})
self.m.ReplayAll()
self.subscr_id)
self.fc.subscription.return_value = fake_subscr
t = template_format.parse(mistral_template)
new_subscr = t['resources']['subscription']
@ -459,23 +392,23 @@ class ZaqarMistralTriggerTest(common.HeatTestCase):
resource_defns = template.Template(t).resource_definitions(self.stack)
scheduler.TaskRunner(subscr.create)()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
options=self.options,
subscriber=self.subscriber,
ttl=220367260800)
scheduler.TaskRunner(subscr.update, resource_defns['subscription'])()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
id=self.subscr_id,
auto_create=False)
self.m.VerifyAll()
def test_update_replace(self, mock_client):
def test_update_replace(self):
subscr = self.subscr
subscr_id = "58138648c1e2eb7355d62137"
fake_subscr = FakeSubscription(subscr.properties['queue_name'],
subscr_id)
self.m.StubOutWithMock(self.fc, 'subscription')
self.fc.subscription(subscr.properties['queue_name'],
options=self.options,
subscriber=self.subscriber,
ttl=220367260800).AndReturn(fake_subscr)
self.m.ReplayAll()
self.subscr_id)
self.fc.subscription.return_value = fake_subscr
t = template_format.parse(mistral_template)
t['resources']['subscription']['properties']['queue_name'] = 'foo'
@ -488,35 +421,33 @@ class ZaqarMistralTriggerTest(common.HeatTestCase):
new_subscr))
msg = 'The Resource subscription requires replacement.'
self.assertEqual(msg, six.text_type(err))
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
options=self.options,
subscriber=self.subscriber,
ttl=220367260800)
self.m.VerifyAll()
def test_show_resource(self, mock_client):
def test_show_resource(self):
subscr = self.subscr
subscr_id = "58138648c1e2eb7355d62137"
fake_subscr = FakeSubscription(subscr.properties['queue_name'],
subscr_id)
self.subscr_id)
fake_subscr.ttl = 220367260800
fake_subscr.subscriber = self.subscriber
fake_subscr.options = {'post_data': str(self.options['post_data'])}
self.m.StubOutWithMock(self.fc, 'subscription')
self.fc.subscription(subscr.properties['queue_name'],
options=self.options,
subscriber=self.subscriber,
ttl=220367260800).AndReturn(fake_subscr)
self.fc.subscription(
subscr.properties['queue_name'], id=subscr_id,
auto_create=False).MultipleTimes().AndReturn(fake_subscr)
self.m.ReplayAll()
self.fc.subscription.return_value = fake_subscr
props = self.stack.t.t['resources']['subscription']['properties']
scheduler.TaskRunner(subscr.create)()
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
options=self.options,
subscriber=self.subscriber,
ttl=220367260800)
self.assertEqual(
{'queue_name': props['queue_name'],
'id': subscr_id,
'id': self.subscr_id,
'subscriber': self.subscriber,
'options': self.options,
'ttl': 220367260800},
@ -529,3 +460,7 @@ class ZaqarMistralTriggerTest(common.HeatTestCase):
'ttl': 220367260800},
subscr.parse_live_resource_data(subscr.properties,
subscr._show_resource()))
self.fc.subscription.assert_called_with(
subscr.properties['queue_name'],
id=self.subscr_id,
auto_create=False)