Author: rjollos
Date: Tue Nov 5 19:06:24 2013
New Revision: 1539101
URL: http://svn.apache.org/r1539101
Log:
0.8dev: Log import errors when discovering test packages. Refs #707.
Patch by Olemis Lang.
Modified:
bloodhound/trunk/bloodhound_multiproduct/tests/__init__.py
Modified: bloodhound/trunk/bloodhound_multiproduct/tests/__init__.py
URL:
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/__init__.py?rev=1539101&r1=1539100&r2=1539101&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_multiproduct/tests/__init__.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/__init__.py Tue Nov 5
19:06:24 2013
@@ -16,6 +16,7 @@
# specific language governing permissions and limitations
# under the License.
+import logging
import sys
from collections import deque
from fnmatch import fnmatch
@@ -50,12 +51,18 @@ class TestLoader(unittest.TestLoader):
"""
pending = deque([(package_or_requirement, self, True)])
tests = []
+ log = logging.getLogger('bh.tests')
+ if len(log.handlers) == 0:
+ # Configure logger instance. otherwise messages won't be displayed
+ _configure_logger(log)
while pending:
mdlnm, loader, isdir = pending.popleft()
try:
mdl = self._get_module_from_name(mdlnm)
except (ImportError, ValueError):
- # Skip packages not having __init__.py
+ # Log import error and skip packages that don't import
+ log.exception('Discovered package %s but import failed',
+ mdlnm)
continue
loader = getattr(mdl, self.testLoaderAttribute, None) or loader
if not (isdir and ignore_subpkg_root):
@@ -84,6 +91,14 @@ class TestLoader(unittest.TestLoader):
return sys.modules[name]
+def _configure_logger(log):
+ # See logging.basicConfig
+ handler = logging.StreamHandler()
+ formatter = logging.Formatter(logging.BASIC_FORMAT, None)
+ handler.setFormatter(formatter)
+ log.addHandler(handler)
+
+
def test_suite():
return TestLoader().discover_package('tests', pattern='*.py',
exclude='*/functional/*')