Преглед на файлове

Better error message if the result backend is unknown. Closes #349. Thanks to stipa

Ask Solem преди 14 години
родител
ревизия
e74afbbc10
променени са 2 файла, в които са добавени 10 реда и са изтрити 2 реда
  1. 6 1
      celery/backends/__init__.py
  2. 4 1
      celery/utils/__init__.py

+ 6 - 1
celery/backends/__init__.py

@@ -20,7 +20,12 @@ def get_backend_cls(backend, loader=None):
     loader = loader or current_app.loader
     if backend not in _backend_cache:
         aliases = dict(BACKEND_ALIASES, **loader.override_backends)
-        _backend_cache[backend] = get_cls_by_name(backend, aliases)
+        try:
+            _backend_cache[backend] = get_cls_by_name(backend, aliases)
+        except ValueError, exc:
+            raise ValueError("Unknown result backend: %r.  "
+                             "Did you spell it correctly?  (%s)" % (backend,
+                                                                    exc))
     return _backend_cache[backend]
 
 

+ 4 - 1
celery/utils/__init__.py

@@ -307,7 +307,10 @@ def get_cls_by_name(name, aliases={}, imp=None):
 
     name = aliases.get(name) or name
     module_name, _, cls_name = rpartition(name, ".")
-    module = imp(module_name)
+    try:
+        module = imp(module_name)
+    except ValueError, exc:
+        raise ValueError("Couldn't import %r: %s" % (name, exc))
     return getattr(module, cls_name)
 
 get_symbol_by_name = get_cls_by_name