source file: /opt/devel/celery/celery/discovery.py
file stats: 14 lines, 12 executed: 85.7% covered
1. from django.conf import settings
2.
3.
4. def autodiscover():
5. """Include tasks for all applications in settings.INSTALLED_APPS."""
6. return filter(None, [find_related_module(app, "tasks")
7. for app in settings.INSTALLED_APPS])
8.
9.
10. def find_related_module(app, related_name):
11. """Given an application name and a module name, tries to find that
12. module in the application, and running handler' if it finds it.
13. """
14.
15. try:
16. module = __import__(app, {}, {}, [related_name])
17. except ImportError:
18. return None
19.
20. try:
21. related_module = getattr(module, related_name)
22. except AttributeError:
23. return None
24.
25. return related_module