Merge pull request #7147 from edx/benp/static-code-analysis-radon

Benp/static code analysis radon
This commit is contained in:
Ben Patterson
2015-03-05 06:48:25 -05:00
3 changed files with 22 additions and 1 deletions

View File

@@ -198,6 +198,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([

View File

@@ -142,6 +142,7 @@ pep8==1.5.7
PyContracts==1.7.1
pylint==1.4.1
python-subunit==0.0.16
radon==1.2
rednose==0.3
selenium==2.42.1
splinter==0.5.4

View File

@@ -79,9 +79,10 @@ case "$TEST_SUITE" in
# Run quality task. Pass in the 'fail-under' percentage to diff-quality
paver run_quality -p 100
mkdir -p reports
paver run_complexity > reports/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
cat > reports/quality.xml <<END
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="quality" tests="1" errors="0" failures="0" skip="0">