summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@googlemail.com>2016-12-29 16:48:48 +0100
committerTodd Gamblin <tgamblin@llnl.gov>2016-12-29 07:48:48 -0800
commit7ea10e768ee1a7deab98ae538d916bbeeb0346b8 (patch)
tree0ece6f20cd24c6b6294135c59e1c3506c895bcab /share
parent88f57d7543a6b08d6b0436cca9649e9dd1eb6b6d (diff)
downloadspack-7ea10e768ee1a7deab98ae538d916bbeeb0346b8.tar.gz
spack-7ea10e768ee1a7deab98ae538d916bbeeb0346b8.tar.bz2
spack-7ea10e768ee1a7deab98ae538d916bbeeb0346b8.tar.xz
spack-7ea10e768ee1a7deab98ae538d916bbeeb0346b8.zip
unit tests: replace nose with pytest (#2502)
* Porting: substitute nose with ytest This huge commit substitutes nose with pytest as a testing system. Things done here: * deleted external/nose as it is no longer used * moved mock resources in their own directory 'test/mock/' * ported two tests (cmd/find, build_system) to pytest native syntax as an example * build_environment, log: used monkeypatch instead of try/catch * moved global mocking of fetch_cache to an auto-used fixture * moved global mocking from test/__init__.py to conftest.py * made `spack test` a wrapper around pytest * run-unit-tests: avoid running python 2.6 tests under coverage to speed them up * use `pytest --cov` instead of coverage run to cut down testing time * mock/packages_test: moved mock yaml configuration to files instead of leaving it in the code as string literals * concretize.py: ported tests to native pytest, reverted multiprocessing in pytest.ini as it was creating the wrong report for coveralls * conftest.py, fixtures: added docstrings * concretize_preferences.py: uses fixtures instead of subclassing MockPackagesTest * directory_layout.py: uses fixtures instead of subclassing MockPackagesTest * install.py: uses fixtures instead of subclassing MockPackagesTest * optional_deps.py: uses fixtures instead of subclassing MockPackagesTest optional_deps.py: uses fixtures instead of subclassing MockPackagesTest * packages.py: uses fixtures instead of subclassing MockPackagesTest * provider_index.py: uses fixtures instead of subclassing MockPackagesTest * spec_yaml.py: uses fixtures instead of subclassing MockPackagesTest * multimethod.py: uses fixtures instead of subclassing MockPackagesTest * install.py: now uses mock_archive_url * git_fetch.py: uses fixtures instead of subclassing MockPackagesTest * hg_fetch.py: uses fixtures instead of subclassing MockPackagesTest * svn_fetch.py, mirror.py: uses fixtures instead of subclassing MockPackagesTest repo.py: deleted * test_compiler_cmd.py: uses fixtures instead of subclassing MockPackagesTest * cmd/module.py, cmd/uninstall.py: uses fixtures instead of subclassing MockDatabase * database.py: uses fixtures instead of subclassing MockDatabase, removed mock/database * pytest: uncluttering fixture implementations * database: changing the scope to 'module' * config.py: uses fixtures instead of subclassing MockPackagesTest * spec_dag.py, spec_semantics.py: uses fixtures instead of subclassing MockPackagesTest * stage.py: uses fixtures instead of subclassing MockPackagesTest. Removed mock directory * pytest: added docstrings to all the fixtures * pytest: final cleanup * build_system_guess.py: fixed naming and docstrings as suggested by @scheibelp * spec_syntax.py: added expected failure on parsing multiple specs closes #1976 * Add pytest and pytest-cov to Spack externals. * Make `spack flake8` ignore externals. * run-unit-tests runs spack test and not pytest. * Remove all the special stuff for `spack test` - Remove `conftest.py` magic and all the special case stuff in `bin/spack` - Spack commands can optionally take unknown arguments, if they want to handle them. - `spack test` is now a command like the others. - `spack test` now just delegates its arguments to `pytest`, but it does it by receiving unknown arguments and NOT taking an explicit help argument. * Fix error in fixtures. * Improve `spack test` command a bit. - Now supports an approximation of the old simple interface - Also supports full pytest options if you want them. * Use external coverage instead of pytest-cov * Make coverage use parallel-mode. * change __init__.py docs to include pytest
Diffstat (limited to 'share')
-rwxr-xr-xshare/spack/qa/changed_files31
-rwxr-xr-xshare/spack/qa/run-unit-tests7
2 files changed, 6 insertions, 32 deletions
diff --git a/share/spack/qa/changed_files b/share/spack/qa/changed_files
deleted file mode 100755
index c1fa55c053..0000000000
--- a/share/spack/qa/changed_files
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env bash
-#
-# Description:
-# Returns a list of changed files.
-#
-# Usage:
-# changed_files [<directory> ...]
-# changed_files [<file> ...]
-# changed_files ["*.<extension>" ...]
-#
-# Options:
-# Directories, files, or globs to search for changed files.
-#
-
-# Move to root directory of Spack
-# Allows script to be run from anywhere
-SPACK_ROOT="$(dirname "$0")/../../.."
-cd "$SPACK_ROOT"
-
-# Add changed files that have been committed since branching off of develop
-changed=($(git diff --name-only --diff-filter=ACMR develop... -- "$@"))
-# Add changed files that have been staged but not yet committed
-changed+=($(git diff --name-only --diff-filter=ACMR --cached -- "$@"))
-# Add changed files that are unstaged
-changed+=($(git diff --name-only --diff-filter=ACMR -- "$@"))
-# Add new files that are untracked
-changed+=($(git ls-files --exclude-standard --other -- "$@"))
-
-# Return array
-# Ensure that each file in the array is unique
-printf '%s\n' "${changed[@]}" | sort -u
diff --git a/share/spack/qa/run-unit-tests b/share/spack/qa/run-unit-tests
index 6da919e18d..0728614bc8 100755
--- a/share/spack/qa/run-unit-tests
+++ b/share/spack/qa/run-unit-tests
@@ -43,4 +43,9 @@ spack config get compilers
spack install -v libdwarf
# Run unit tests with code coverage
-coverage run bin/spack test "$@"
+if [[ "$TRAVIS_PYTHON_VERSION" == 2.7 ]]; then
+ coverage run bin/spack test "$@"
+ coverage combine
+else
+ spack test "$@"
+fi