diff options
| author | Tom Christie | 2011-07-13 12:37:52 +0100 | 
|---|---|---|
| committer | Tom Christie | 2011-07-13 12:37:52 +0100 | 
| commit | 39d9ac9d1ba8635629891f3fb7d4ed7a134c984c (patch) | |
| tree | 73e05a181fded9c8823c93d7c822c0c594e362d9 /djangorestframework/runtests | |
| parent | 9ec50ac442bbc5fbd4de8352c5971d715d25405d (diff) | |
| download | django-rest-framework-39d9ac9d1ba8635629891f3fb7d4ed7a134c984c.tar.bz2 | |
Improve coverage reporting
Diffstat (limited to 'djangorestframework/runtests')
| -rw-r--r-- | djangorestframework/runtests/runcoverage.py | 35 | 
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)  | 
