Merge "Enable some unit tests back"

This commit is contained in:
Jenkins
2015-02-03 04:38:47 +00:00
committed by Gerrit Code Review
6 changed files with 57 additions and 92 deletions

View File

View File

@@ -136,6 +136,7 @@ class VolumeTest(vt_base.BaseVolumeTest):
cinder.CinderClientPlugin._create().AndReturn(
self.cinder_fc)
self.stub_ImageConstraint_validate()
self.stub_ServerConstraint_validate()
self.stub_VolumeConstraint_validate()
vol_name = utils.PhysName(stack_name, 'DataVolume')
self.cinder_fc.volumes.create(
@@ -641,8 +642,9 @@ class VolumeTest(vt_base.BaseVolumeTest):
"range (min: 1, max: None)", six.text_type(error))
def test_volume_attachment_updates_not_supported(self):
nova.NovaClientPlugin.get_server = mock.Mock(
return_value=mock.MagicMock())
self.m.StubOutWithMock(nova.NovaClientPlugin, 'get_server')
nova.NovaClientPlugin.get_server(mox.IgnoreArg()).AndReturn(
mox.MockAnything())
fv = vt_base.FakeVolume('creating', 'available')
fva = vt_base.FakeVolume('attaching', 'in-use')
stack_name = 'test_volume_attach_updnotsup_stack'

View File

@@ -14,20 +14,19 @@
import copy
import datetime
import json
import time
import uuid
import mox
from oslo.config import cfg
from oslo_utils import timeutils
import six
from heat.common import exception
from heat.common import identifier
from heat.common import template_format
from heat.db import api as db_api
from heat.engine import environment
from heat.engine import parser
from heat.engine.resources.aws import wait_condition_handle as aws_wch
from heat.engine.resources import wait_condition as wc
from heat.engine import rsrc_defn
from heat.engine import scheduler
from heat.tests import common
@@ -199,23 +198,20 @@ class WaitConditionTest(common.HeatTestCase):
self.m.VerifyAll()
def test_timeout(self):
st = time.time()
self.stack = self.create_stack()
# Avoid the stack create exercising the timeout code at the same time
self.m.StubOutWithMock(self.stack, 'timeout_secs')
self.stack.timeout_secs().MultipleTimes().AndReturn(None)
self.m.StubOutWithMock(scheduler, 'wallclock')
now = timeutils.utcnow()
fake_clock = [now + datetime.timedelta(0, t)
for t in (0, 0.001, 0.1, 4.1, 5.1)]
timeutils.set_time_override(fake_clock)
self.addCleanup(timeutils.clear_time_override)
scheduler.wallclock().AndReturn(st)
scheduler.wallclock().AndReturn(st + 0.001)
scheduler.wallclock().AndReturn(st + 0.1)
aws_wch.WaitConditionHandle.get_status().AndReturn([])
scheduler.wallclock().AndReturn(st + 4.1)
aws_wch.WaitConditionHandle.get_status().AndReturn([])
scheduler.wallclock().AndReturn(st + 5.1)
aws_wch.WaitConditionHandle.get_status(
).MultipleTimes().AndReturn([])
self.m.ReplayAll()
@@ -529,11 +525,6 @@ class WaitConditionUpdateTest(common.HeatTestCase):
cfg.CONF.set_default('heat_waitcondition_server_url',
'http://server.test:8000/v1/waitcondition')
self.stub_keystoneclient()
scheduler.ENABLE_SLEEP = False
def tearDown(self):
super(WaitConditionUpdateTest, self).tearDown()
scheduler.ENABLE_SLEEP = True
def create_stack(self, tmpl=None):
if tmpl is None:
@@ -594,34 +585,7 @@ class WaitConditionUpdateTest(common.HeatTestCase):
self.assertEqual((rsrc.UPDATE, rsrc.COMPLETE), rsrc.state)
def test_handle_update(self):
self.stack = self.create_stack()
self.m.ReplayAll()
self.stack.create()
rsrc = self.stack['WaitForTheHandle']
self.assertEqual((rsrc.CREATE, rsrc.COMPLETE), rsrc.state)
self.m.VerifyAll()
self.m.UnsetStubs()
wait_condition_handle = self.stack['WaitHandle']
test_metadata = {'Data': 'foo', 'Reason': 'bar',
'Status': 'SUCCESS', 'UniqueId': '1'}
self._handle_signal(wait_condition_handle, test_metadata, 5)
prop_diff = {"Count": 5}
props = copy.copy(rsrc.properties.data)
props.update(prop_diff)
update_defn = rsrc_defn.ResourceDefinition(rsrc.name, rsrc.type(),
props)
updater = rsrc.handle_update(update_defn, {}, prop_diff)
updater.run_to_completion()
self.assertEqual(5, rsrc.properties['Count'])
self.assertEqual((rsrc.CREATE, rsrc.COMPLETE), rsrc.state)
def test_handle_update_restored_from_db(self):
def test_update_restored_from_db(self):
self.stack = self.create_stack()
self.m.ReplayAll()
self.stack.create()
@@ -642,16 +606,17 @@ class WaitConditionUpdateTest(common.HeatTestCase):
rsrc = self.stack['WaitForTheHandle']
self._handle_signal(wait_condition_handle, test_metadata, 3)
prop_diff = {"Count": 5}
props = copy.copy(rsrc.properties.data)
props.update(prop_diff)
update_defn = rsrc_defn.ResourceDefinition(rsrc.name, rsrc.type(),
props)
updater = rsrc.handle_update(update_defn, {}, prop_diff)
updater.run_to_completion()
self.assertEqual(5, rsrc.properties['Count'])
self.assertEqual((rsrc.CREATE, rsrc.COMPLETE), rsrc.state)
uprops = copy.copy(rsrc.properties.data)
uprops['Count'] = '5'
update_snippet = rsrc_defn.ResourceDefinition(rsrc.name,
rsrc.type(),
uprops)
updater = scheduler.TaskRunner(rsrc.update, update_snippet)
updater()
self.assertEqual((rsrc.UPDATE, rsrc.COMPLETE), rsrc.state)
def _handle_signal(self, rsrc, metadata, times=1):
for t in range(times):
@@ -661,7 +626,7 @@ class WaitConditionUpdateTest(common.HeatTestCase):
(metadata[rsrc.STATUS], metadata[rsrc.REASON]),
ret)
def test_handle_update_timeout(self):
def test_update_timeout(self):
self.stack = self.create_stack()
self.m.ReplayAll()
self.stack.create()
@@ -672,31 +637,27 @@ class WaitConditionUpdateTest(common.HeatTestCase):
self.m.VerifyAll()
self.m.UnsetStubs()
st = time.time()
now = timeutils.utcnow()
fake_clock = [now + datetime.timedelta(0, t)
for t in (0, 0.001, 0.1, 4.1, 5.1)]
timeutils.set_time_override(fake_clock)
self.addCleanup(timeutils.clear_time_override)
self.m.StubOutWithMock(scheduler.TaskRunner, '_sleep')
scheduler.TaskRunner._sleep(mox.IgnoreArg()).MultipleTimes().AndReturn(
None)
self.m.StubOutWithMock(scheduler, 'wallclock')
scheduler.wallclock().AndReturn(st)
scheduler.wallclock().AndReturn(st + 0.001)
scheduler.wallclock().AndReturn(st + 0.1)
scheduler.wallclock().AndReturn(st + 4.1)
scheduler.wallclock().AndReturn(st + 5.1)
self.m.StubOutWithMock(aws_wch.WaitConditionHandle, 'get_status')
aws_wch.WaitConditionHandle.get_status().MultipleTimes().AndReturn([])
self.m.ReplayAll()
prop_diff = {"Count": 5}
props = copy.copy(rsrc.properties.data)
props.update(prop_diff)
update_defn = rsrc_defn.ResourceDefinition(rsrc.name, rsrc.type(),
props)
updater = rsrc.handle_update(update_defn, {}, prop_diff)
uprops = copy.copy(rsrc.properties.data)
uprops['Count'] = '5'
update_snippet = rsrc_defn.ResourceDefinition(rsrc.name,
rsrc.type(),
uprops)
updater = scheduler.TaskRunner(rsrc.update, update_snippet)
ex = self.assertRaises(exception.ResourceFailure,
updater)
self.assertEqual("WaitConditionTimeout: 0 of 5 received",
six.text_type(ex))
self.assertEqual(5, rsrc.properties['Count'])
ex = self.assertRaises(wc.WaitConditionTimeout,
updater.run_to_completion)
self.assertEqual("0 of 5 received", six.text_type(ex))
self.m.VerifyAll()
self.m.UnsetStubs()

View File

@@ -186,3 +186,8 @@ class HeatTestCase(testscenarios.WithScenarios,
self.m.StubOutWithMock(cinder.VolumeTypeConstraint, 'validate')
cinder.VolumeTypeConstraint.validate(
mox.IgnoreArg(), mox.IgnoreArg()).MultipleTimes().AndReturn(True)
def stub_ServerConstraint_validate(self):
self.m.StubOutWithMock(nova.ServerConstraint, 'validate')
nova.ServerConstraint.validate(
mox.IgnoreArg(), mox.IgnoreArg()).MultipleTimes().AndReturn(True)

View File

View File

@@ -11,9 +11,10 @@
# License for the specific language governing permissions and limitations
# under the License.
import time
import datetime
import uuid
from oslo_utils import timeutils
import six
from heat.common import identifier
@@ -24,7 +25,6 @@ from heat.engine import environment
from heat.engine import parser
from heat.engine import resource
from heat.engine.resources.openstack import wait_condition_handle as heat_wch
from heat.engine import scheduler
from heat.tests import common
from heat.tests import utils
@@ -155,23 +155,20 @@ class HeatWaitConditionTest(common.HeatTestCase):
self.m.VerifyAll()
def test_timeout(self):
st = time.time()
self.stack = self.create_stack()
# Avoid the stack create exercising the timeout code at the same time
self.m.StubOutWithMock(self.stack, 'timeout_secs')
self.stack.timeout_secs().MultipleTimes().AndReturn(None)
self.m.StubOutWithMock(scheduler, 'wallclock')
now = timeutils.utcnow()
fake_clock = [now + datetime.timedelta(0, t)
for t in (0, 0.001, 0.1, 4.1, 5.1)]
timeutils.set_time_override(fake_clock)
self.addCleanup(timeutils.clear_time_override)
scheduler.wallclock().AndReturn(st)
scheduler.wallclock().AndReturn(st + 0.001)
scheduler.wallclock().AndReturn(st + 0.1)
heat_wch.HeatWaitConditionHandle.get_status().AndReturn([])
scheduler.wallclock().AndReturn(st + 4.1)
heat_wch.HeatWaitConditionHandle.get_status().AndReturn([])
scheduler.wallclock().AndReturn(st + 5.1)
heat_wch.HeatWaitConditionHandle.get_status(
).MultipleTimes().AndReturn([])
self.m.ReplayAll()