aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Christie2011-07-13 12:37:52 +0100
committerTom Christie2011-07-13 12:37:52 +0100
commit39d9ac9d1ba8635629891f3fb7d4ed7a134c984c (patch)
tree73e05a181fded9c8823c93d7c822c0c594e362d9
parent9ec50ac442bbc5fbd4de8352c5971d715d25405d (diff)
downloaddjango-rest-framework-39d9ac9d1ba8635629891f3fb7d4ed7a134c984c.tar.bz2
Improve coverage reporting
-rw-r--r--djangorestframework/runtests/runcoverage.py35
1 files changed, 23 insertions, 12 deletions
diff --git a/djangorestframework/runtests/runcoverage.py b/djangorestframework/runtests/runcoverage.py
index 948d7889..6bae02df 100644
--- a/djangorestframework/runtests/runcoverage.py
+++ b/djangorestframework/runtests/runcoverage.py
@@ -9,27 +9,18 @@ import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'djangorestframework.runtests.settings'
-from django.conf import settings
-from django.test.utils import get_runner
from coverage import coverage
from itertools import chain
-import djangorestframework
def main():
"""Run the tests for djangorestframework and generate a coverage report."""
-
- # Discover the list of all modules that we should test coverage for
- project_dir = os.path.dirname(djangorestframework.__file__)
- cov_files = []
- for (path, dirs, files) in os.walk(project_dir):
- # Drop tests and runtests directories from the test coverage report
- if os.path.basename(path) == 'tests' or os.path.basename(path) == 'runtests':
- continue
- cov_files.extend([os.path.join(path, file) for file in files if file.endswith('.py')])
cov = coverage()
cov.erase()
cov.start()
+
+ from django.conf import settings
+ from django.test.utils import get_runner
TestRunner = get_runner(settings)
if hasattr(TestRunner, 'func_name'):
@@ -46,6 +37,26 @@ def main():
failures = test_runner.run_tests(['djangorestframework'])
cov.stop()
+
+ # Discover the list of all modules that we should test coverage for
+ import djangorestframework
+
+ project_dir = os.path.dirname(djangorestframework.__file__)
+ cov_files = []
+
+ for (path, dirs, files) in os.walk(project_dir):
+ # Drop tests and runtests directories from the test coverage report
+ if os.path.basename(path) == 'tests' or os.path.basename(path) == 'runtests':
+ continue
+
+ # Drop the compat module from coverage, since we're not interested in the coverage
+ # of a module which is specifically for resolving environment dependant imports.
+ # (Because we'll end up getting different coverage reports for it for each environment)
+ if 'compat.py' in files:
+ files.remove('compat.py')
+
+ cov_files.extend([os.path.join(path, file) for file in files if file.endswith('.py')])
+
cov.report(cov_files)
cov.xml_report(cov_files)
sys.exit(failures)