def test_add_pull_and_push_queue_tasks(self): """Ensure that push and pull tasks can be added with add_tasks().""" from furious.async import Async from furious.batcher import Message from furious.test_stubs.appengine.queues import add_tasks from furious.test_stubs.appengine.queues import get_tasks from furious.test_stubs.appengine.queues import purge_tasks # Add tasks the normal way so we can get them and test readding them async = Async(target='time.ctime') async.start() async2 = Async(target='time.ctime') async2.start() Message(queue='default-pull').insert() task_dict = get_tasks(self.queue_service) # purge current tasks so we can verify how many we will add next. purge_tasks(self.queue_service) num_added = add_tasks(self.queue_service, task_dict) # Purge tasks to check how many tasks are in the queues num_queued = purge_tasks(self.queue_service) self.assertEqual(3, num_added) self.assertEqual(3, num_queued)
def test_purge_tasks_with_string_passed_to_queue_names(self, ctime): """If a single queue_name is passed to purge_tasks() instead of a list, ensure that the queue specified is still cleared. Ensure the number of tasks cleared is correct. """ from furious.async import Async from furious.batcher import Message from furious.test_stubs.appengine.queues import run as run_queues from furious.test_stubs.appengine.queues import purge_tasks # Enqueue a couple of tasks async = Async(target='time.ctime') async.start() async2 = Async(target='time.ctime') async2.start() # Insert a pull task Message(queue='default-pull').insert() num_cleared = purge_tasks(self.taskqueue_service, 'default') # Run the tasks to check if tasks remain run_queues(self.taskqueue_service) # Ensure two tasks from the default queue were cleared. self.assertEqual(2, num_cleared) # Ensure no tasks were run self.assertEqual(0, ctime.call_count)
def test_purge_tasks_with_queue_names_provided(self, ctime): """When a list of queue_names is provided, ensure purge_tasks() clears the tasks and none are left to execute. Ensure the number of tasks cleared is correct. """ from furious.async import Async from furious.batcher import Message from furious.test_stubs.appengine.queues import run as run_queues from furious.test_stubs.appengine.queues import purge_tasks # Enqueue a couple of tasks async = Async(target='time.ctime') async.start() async2 = Async(target='time.ctime') async2.start() Message(queue='default-pull').insert() num_cleared = purge_tasks(self.taskqueue_service, ['default']) # Run the tasks to check if tasks remain run_queues(self.taskqueue_service) # Ensure two tasks from the default queue were cleared. self.assertEqual(2, num_cleared) # Ensure no tasks were run self.assertEqual(0, ctime.call_count)
def test_purge_tasks_with_tasks(self, ctime): """After queues are run, ensure no tasks are left to execute. Ensure the number of tasks cleared is correct. """ from furious.async import Async from furious.batcher import Message from furious.test_stubs.appengine.queues import run as run_queues from furious.test_stubs.appengine.queues import purge_tasks # Enqueue a couple of tasks async = Async(target='time.ctime') async.start() async2 = Async(target='time.ctime') async2.start() Message(queue='default-pull').insert() num_cleared = purge_tasks(self.taskqueue_service) # Run the tasks to check if tasks remain run_queues(self.taskqueue_service) # Ensure three tasks were cleared, from 'default' and 'default-pull'. self.assertEqual(3, num_cleared) # Ensure no tasks were run self.assertEqual(0, ctime.call_count)
def test_purge_tasks_with_no_tasks(self, ctime): """Ensure no errors occur when purging queues containing no tasks. Ensure the number of tasks cleared is correct. """ from furious.test_stubs.appengine.queues import purge_tasks num_cleared = purge_tasks(self.taskqueue_service) # Ensure zero tasks were cleared. self.assertEqual(0, num_cleared) # Ensure no tasks were run self.assertEqual(0, ctime.call_count)
def test_add_tasks_when_there_are_no_tasks(self): """Ensure that no tasks are added to add_tasks() when the task_dict is empty. """ from furious.test_stubs.appengine.queues import add_tasks from furious.test_stubs.appengine.queues import purge_tasks task_dict = {} num_added = add_tasks(self.queue_service, task_dict) # Purge tasks to count if any tasks remained. num_purged = purge_tasks(self.queue_service) self.assertEqual(0, num_added) self.assertEqual(0, num_purged)
def test_add_tasks_with_empty_queues(self, queue_add): """Ensure qeueue.add() is not called when there are no tasks to queue. In some cases adding an empty list causes an error in the taskqueue stub. """ from furious.test_stubs.appengine.queues import add_tasks from furious.test_stubs.appengine.queues import purge_tasks task_dict = {'default': [], 'default-pull': []} # Add using empty lists of tasks. num_added = add_tasks(self.queue_service, task_dict) # Purge tasks to verify the count of tasks added. num_purged = purge_tasks(self.queue_service) # Ensure no tasks were added. self.assertEqual(0, queue_add.call_count) self.assertEqual(0, num_added) self.assertEqual(0, num_purged)