From 471bd2c0a878c70a5ae63df5030a0284a46e7eb4 Mon Sep 17 00:00:00 2001 From: Ben Patterson Date: Thu, 26 Feb 2015 20:29:32 -0500 Subject: [PATCH] Enable code complexity reporting. --- pavelib/quality.py | 19 +++++++++++++++++++ scripts/all-tests.sh | 1 + 2 files changed, 20 insertions(+) diff --git a/pavelib/quality.py b/pavelib/quality.py index a5c7eb4634..2f1584fede 100644 --- a/pavelib/quality.py +++ b/pavelib/quality.py @@ -173,6 +173,25 @@ def _count_pep8_violations(report_file): return num_lines +@task +@needs('pavelib.prereqs.install_python_prereqs') +def run_complexity(): + """ + Uses radon to examine cyclomatic complexity. + For additional details on radon, see http://radon.readthedocs.org/ + """ + system_string = 'cms/ lms/ common/ openedx/' + print "--> Calculating cyclomatic complexity of files..." + try: + sh( + "radon cc {system_string} --total-average".format( + system_string=system_string + ) + ) + except BuildFailure: + print "ERROR: Unable to calculate python-only code-complexity." + + @task @needs('pavelib.prereqs.install_python_prereqs') @cmdopts([ diff --git a/scripts/all-tests.sh b/scripts/all-tests.sh index 3767d10492..3a6ee2ec44 100755 --- a/scripts/all-tests.sh +++ b/scripts/all-tests.sh @@ -80,6 +80,7 @@ case "$TEST_SUITE" in # Run quality task. Pass in the 'fail-under' percentage to diff-quality paver run_quality -p 100 + paver run_complexity > code_complexity.log || echo "Unable to calculate code complexity. Ignoring error." # Need to create an empty test result so the post-build # action doesn't fail the build. mkdir -p reports