summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.coveragerc27
-rw-r--r--.gitignore2
-rw-r--r--.style.yapf3
-rw-r--r--.travis.yml18
-rw-r--r--flake8.ini3
5 files changed, 50 insertions, 3 deletions
diff --git a/.coveragerc b/.coveragerc
new file mode 100644
index 0000000000..37410a3677
--- /dev/null
+++ b/.coveragerc
@@ -0,0 +1,27 @@
+# .coveragerc to control coverage.py
+[run]
+branch = True
+
+[report]
+# Regexes for lines to exclude from consideration
+exclude_lines =
+ # Have to re-enable the standard pragma
+ pragma: no cover
+
+ # Don't complain about missing debug-only code:
+ def __repr__
+ if self\.debug
+
+ # Don't complain if tests don't hit defensive assertion code:
+ raise AssertionError
+ raise NotImplementedError
+
+ # Don't complain if non-runnable code isn't run:
+ if 0:
+ if False:
+ if __name__ == .__main__.:
+
+ignore_errors = True
+
+[html]
+directory = htmlcov
diff --git a/.gitignore b/.gitignore
index 4b97de5d50..643e5d9b03 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,5 @@
/share/spack/dotkit
/share/spack/modules
/TAGS
+/htmlcov
+.coverage
diff --git a/.style.yapf b/.style.yapf
new file mode 100644
index 0000000000..b4a1f688b8
--- /dev/null
+++ b/.style.yapf
@@ -0,0 +1,3 @@
+[style]
+based_on_style = pep8
+column_limit = 120 \ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 1bed6b0874..30dfebf783 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,20 +6,32 @@ python:
# Use new Travis infrastructure (Docker can't sudo yet)
sudo: false
-# No need to install any deps.
-install: true
+# Install coveralls to obtain code coverage
+install:
+ - "pip install coveralls"
+ - "pip install flake8"
before_install:
# Need this for the git tests to succeed.
- git config --global user.email "spack@example.com"
- git config --global user.name "Test User"
+ # Need this to be able to compute the list of changed files
+ - git fetch origin develop:develop
script:
- . share/spack/setup-env.sh
- spack compilers
- spack config get compilers
- - spack test
- spack install -v libdwarf
+ # Run unit tests with code coverage
+ - coverage run --source=lib --omit=lib/spack/spack/test/*,lib/spack/env/*,lib/spack/docs/*,lib/spack/external/* bin/spack test
+ # Checks if the file that have been changed are flake8 conformant
+ - CHANGED_PYTHON_FILES=`git diff develop... --name-only | perl -ne 'print if /\.py/g'`
+ - if [[ ${CHANGED_PYTHON_FILES} ]] ; then flake8 --format pylint --config flake8.ini ${CHANGED_PYTHON_FILES} ; fi
+
+
+after_success:
+ - coveralls
notifications:
email:
diff --git a/flake8.ini b/flake8.ini
new file mode 100644
index 0000000000..757c71705e
--- /dev/null
+++ b/flake8.ini
@@ -0,0 +1,3 @@
+[flake8]
+ignore = W391,F403
+max-line-length = 120 \ No newline at end of file