# HG changeset patch # User Sverre Rabbelier # Date 1254128875 -7200 # Node ID 00bbe180a0e08e4a68c5156957ea46a6c7e43ed3 # Parent f1ed0ecd012898fdf928c1d7cbe61df81bbcbc1a# Parent 2b7ea1f2629a0ba0d0da4a1a2c997c425db30052 Merging test back in diff -r f1ed0ecd0128 -r 00bbe180a0e0 app/soc/logic/tasks.py --- a/app/soc/logic/tasks.py Mon Sep 28 00:50:59 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -#!/usr/bin/python2.5 -# -# Copyright 2008 the Melange authors. -# -# 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. - -"""Helpers functions for dealing with task queue api -""" - -__authors__ = [ - '"Daniel Hans" ', - ] - -import logging -from django import http - -# TODO(labs): fix when taskqueue graduates from labs -from google.appengine.api.labs import taskqueue - - -class Error(Exception): - """Base class for all exceptions raised by this module. - """ - - pass - - -class FatalTaskError(Error): - """Class for all errors that lead to immediate task abortion. - """ - pass - - -def startTask(url, queue_name='default', context=None, **kwargs): - """Adds a new task to one of the queues - """ - - queue = taskqueue.Queue(name=queue_name) - return queue.add(taskqueue.Task(url=url, params=context)) - - -def terminateTask(): - """Generates http response which causes that the task is - is not added to the queue again - """ - - return http.HttpResponse(status=200) - -def repeatTask(): - """Generates http response which causes that the task is - added to the queue again - """ - - return http.HttpResponse(status=500) diff -r f1ed0ecd0128 -r 00bbe180a0e0 app/soc/tasks/responses.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/soc/tasks/responses.py Mon Sep 28 11:07:55 2009 +0200 @@ -0,0 +1,64 @@ +#!/usr/bin/python2.5 +# +# Copyright 2009 the Melange authors. +# +# 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. + +"""Helpers functions for dealing with task queue api +""" + +__authors__ = [ + '"Daniel Hans" ', + ] + +import logging +from django import http + +# TODO(labs): fix when taskqueue graduates from labs +from google.appengine.api.labs import taskqueue + + +class Error(Exception): + """Base class for all exceptions raised by this module. + """ + + pass + + +class FatalTaskError(Error): + """Class for all errors that lead to immediate task abortion. + """ + pass + + +def startTask(url, queue_name='default', context=None, **kwargs): + """Adds a new task to one of the queues + """ + + queue = taskqueue.Queue(name=queue_name) + return queue.add(taskqueue.Task(url=url, params=context)) + + +def terminateTask(): + """Generates http response which causes that the task is + is not added to the queue again + """ + + return http.HttpResponse(status=200) + +def repeatTask(): + """Generates http response which causes that the task is + added to the queue again + """ + + return http.HttpResponse(status=500) diff -r f1ed0ecd0128 -r 00bbe180a0e0 app/soc/views/helper/decorators.py --- a/app/soc/views/helper/decorators.py Mon Sep 28 00:50:59 2009 +0200 +++ b/app/soc/views/helper/decorators.py Mon Sep 28 11:07:55 2009 +0200 @@ -31,7 +31,7 @@ from django.utils.translation import ugettext from soc.logic import dicts -from soc.logic import tasks +from soc.tasks import responses as task_responses from soc.views.helper import responses @@ -130,12 +130,12 @@ try: return func(request, *args, **kwargs) - except tasks.FatalTaskError, error: + except task_responses.FatalTaskError, error: logging.exception(error) - return tasks.terminateTask() + return task_responses.terminateTask() except Exception, exception: logging.exception(exception) - return tasks.repeatTask() + return task_responses.repeatTask() return wrapper @@ -161,7 +161,7 @@ post_dict = request.POST if 'logic' not in post_dict: - return tasks.terminateTask() + return task_responses.terminateTask() _temp = __import__(post_dict['logic'], globals(), locals(), ['logic'], -1) logic = _temp.logic @@ -186,12 +186,12 @@ try: new_json = func(request, entities=entities, json=json, *args, **kwargs) - except tasks.FatalTaskError, error: + except task_responses.FatalTaskError, error: logging.error(error) - return tasks.terminateTask() + return task_responses.terminateTask() except Exception, exception: logging.error(exception) - return tasks.repeatTask() + return task_responses.repeatTask() if start_key is None: logging.debug('Task sucessfully completed') @@ -206,8 +206,8 @@ if new_json is not None: context.update({'json': new_json}) - tasks.startTask(url=request.path, context=context) + task_responses.startTask(url=request.path, context=context) - return tasks.terminateTask() + return task_responses.terminateTask() return wrapper