Add tests for task_step
Change-Id: I9f7ec4633e91264b6821ae3edb3a021e8843553d
This commit is contained in:
parent
9177876e16
commit
e095c8cf1c
@ -299,3 +299,11 @@ class FakeGearmanServer(gear.Server):
|
|||||||
qlen = (len(self.high_queue) + len(self.normal_queue) +
|
qlen = (len(self.high_queue) + len(self.normal_queue) +
|
||||||
len(self.low_queue))
|
len(self.low_queue))
|
||||||
self.log.debug("done releasing queued jobs %s (%s)" % (regex, qlen))
|
self.log.debug("done releasing queued jobs %s (%s)" % (regex, qlen))
|
||||||
|
|
||||||
|
|
||||||
|
class FakeJob(object):
|
||||||
|
def __init__(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def sendWorkStatus(self, *args, **kwargs):
|
||||||
|
pass
|
||||||
|
58
tests/test_common.py
Normal file
58
tests/test_common.py
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/python2
|
||||||
|
#
|
||||||
|
# Copyright 2014 Rackspace Australia
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
import testtools
|
||||||
|
|
||||||
|
import fakes
|
||||||
|
|
||||||
|
from turbo_hipster.lib import common
|
||||||
|
from turbo_hipster.lib import models
|
||||||
|
|
||||||
|
|
||||||
|
class TestTaskStep(testtools.TestCase):
|
||||||
|
def test_task_step_decorator(self):
|
||||||
|
class FakeTask(models.Task):
|
||||||
|
def __init__(self, global_config, plugin_config, job_name):
|
||||||
|
super(FakeTask, self).__init__(global_config, plugin_config,
|
||||||
|
job_name)
|
||||||
|
# Define the number of steps we will do to determine our
|
||||||
|
# progress.
|
||||||
|
self.total_steps = 2
|
||||||
|
|
||||||
|
@common.task_step
|
||||||
|
def do_something(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def non_step(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
@common.task_step
|
||||||
|
def do_something_more(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
task = FakeTask({}, {}, 'job_name')
|
||||||
|
task.job = fakes.FakeJob()
|
||||||
|
|
||||||
|
self.assertEqual(0, task.current_step)
|
||||||
|
|
||||||
|
task.do_something()
|
||||||
|
self.assertEqual(1, task.current_step)
|
||||||
|
|
||||||
|
task.non_step()
|
||||||
|
self.assertEqual(1, task.current_step)
|
||||||
|
|
||||||
|
task.do_something_more()
|
||||||
|
self.assertEqual(2, task.current_step)
|
Loading…
x
Reference in New Issue
Block a user