Преглед изворни кода

Fixes --loader option, and deprecated celery.app.default_loader. Closes #1066

Ask Solem пре 12 година
родитељ
комит
33841ed75a
4 измењених фајлова са 13 додато и 19 уклоњено
  1. 5 4
      celery/_state.py
  2. 3 1
      celery/app/__init__.py
  3. 5 1
      celery/bin/base.py
  4. 0 13
      extra/release/py3k-run-tests

+ 5 - 4
celery/_state.py

@@ -11,6 +11,7 @@
 """
 from __future__ import absolute_import
 
+import os
 import threading
 import weakref
 
@@ -42,10 +43,10 @@ def set_default_app(app):
 def get_current_app():
     if default_app is None:
         #: creates the global fallback app instance.
-        from celery.app import Celery, default_loader
-        set_default_app(Celery('default', loader=default_loader,
-                                          set_as_current=False,
-                                          accept_magic_kwargs=True))
+        from celery.app import Celery
+        set_default_app(Celery('default',
+            loader=os.environ.get('CELERY_LOADER') or 'default',
+            set_as_current=False, accept_magic_kwargs=True))
     return _tls.current_app or default_app
 
 

+ 3 - 1
celery/app/__init__.py

@@ -35,7 +35,9 @@ default_app = Proxy(lambda: _state.default_app)
 app_or_default = None
 
 #: The 'default' loader is the default loader used by old applications.
-default_loader = os.environ.get('CELERY_LOADER') or 'default'
+#: This is deprecated and should no longer be used as it's set too early
+#: to be affected by --loader argument.
+default_loader = os.environ.get('CELERY_LOADER') or 'default'  # XXX
 
 
 def bugreport():

+ 5 - 1
celery/bin/base.py

@@ -275,7 +275,11 @@ class Command(object):
         app = (preload_options.get('app') or
                os.environ.get('CELERY_APP') or
                self.app)
-        loader = (preload_options.get('loader') or
+        preload_loader = preload_options.get('loader')
+        if preload_loader:
+            # Default app takes loader from this env (Issue #1066).
+            os.environ['CELERY_LOADER'] = preload_loader
+        loader = (preload_loader,
                   os.environ.get('CELERY_LOADER') or
                   'default')
         broker = preload_options.get('broker', None)

+ 0 - 13
extra/release/py3k-run-tests

@@ -1,13 +0,0 @@
-#!/bin/bash
-base=${1:-.}
-nosetests -vd celery.tests                                      \
-          --with-coverage3                                      \
-            --cover3-branch                                     \
-            --cover3-xml                                        \
-            --cover3-xml-file="$base/coverage.xml"              \
-            --cover3-html                                       \
-            --cover3-html-dir="$base/cover"                     \
-            --cover3-package=celery                             \
-            --cover3-exclude="celery.tests.*"                   \
-          --with-xunit                                          \
-            --xunit-file="$base/nosetests.xml"