openstacksdk/shade/tests/unit/test_task_manager.py
Monty Taylor bda72e4adc
Use list_servers for polling rather than get_server_by_id
Using get_server_by_id bypasses the list_server poll/cache. There is one
legit place where we should do this, but in the other places it causes
us to poll with great frequency unnecessarily.

The TaskManager test changes are just to get test discover to stop
finding then skipping the fixtures in the file.

Change-Id: I7f1e360f53d7344dfc996eb4c4813184720f8da0
2016-09-02 09:58:11 -05:00

93 lines
2.6 KiB
Python

# Copyright (c) 2015 Hewlett-Packard Development Company, L.P.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from shade import task_manager
from shade.tests.unit import base
class TestException(Exception):
pass
class TaskTest(task_manager.Task):
def main(self, client):
raise TestException("This is a test exception")
class TaskTestGenerator(task_manager.Task):
def main(self, client):
yield 1
class TaskTestInt(task_manager.Task):
def main(self, client):
return int(1)
class TaskTestFloat(task_manager.Task):
def main(self, client):
return float(2.0)
class TaskTestStr(task_manager.Task):
def main(self, client):
return "test"
class TaskTestBool(task_manager.Task):
def main(self, client):
return True
class TaskTestSet(task_manager.Task):
def main(self, client):
return set([1, 2])
class TestTaskManager(base.TestCase):
def setUp(self):
super(TestTaskManager, self).setUp()
self.manager = task_manager.TaskManager(name='test', client=self)
def test_wait_re_raise(self):
"""Test that Exceptions thrown in a Task is reraised correctly
This test is aimed to six.reraise(), called in Task::wait().
Specifically, we test if we get the same behaviour with all the
configured interpreters (e.g. py27, p34, pypy, ...)
"""
self.assertRaises(TestException, self.manager.submit_task, TaskTest())
def test_dont_munchify_int(self):
ret = self.manager.submit_task(TaskTestInt())
self.assertIsInstance(ret, int)
def test_dont_munchify_float(self):
ret = self.manager.submit_task(TaskTestFloat())
self.assertIsInstance(ret, float)
def test_dont_munchify_str(self):
ret = self.manager.submit_task(TaskTestStr())
self.assertIsInstance(ret, str)
def test_dont_munchify_bool(self):
ret = self.manager.submit_task(TaskTestBool())
self.assertIsInstance(ret, bool)
def test_dont_munchify_set(self):
ret = self.manager.submit_task(TaskTestSet())
self.assertIsInstance(ret, set)