diff --git a/.travis.yml b/.travis.yml index 18fcfc5a74e..cdc91ce478b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,15 +23,16 @@ env: - PYTHON_VERSION=2.7 - COVERALLS=false - NOSE_FLAGS="--processes=2 --process-timeout=400 --no-open-files --with-timer --timer-top-n 50" - - NOSE_TEST_LIST1="analysis auxiliary coordinates core formats topology utils" - - NOSE_TEST_LIST2="lib" - - NOSE_COVERAGE1="coverage1" - - NOSE_COVERAGE2="coverage2" - - MAIN_CMD="python ./testsuite/MDAnalysisTests/mda_nosetests ${NOSE_TEST_LIST1} ${NOSE_FLAGS}; python ./testsuite/MDAnalysisTests/mda_nosetests ${NOSE_TEST_LIST2} ${NOSE_FLAGS}" + - NOSE_TEST_LIST="analysis auxiliary coordinates core formats topology utils" + - PYTEST_FLAGS="--disable-pytest-warnings" + - PYTEST_LIST="testsuite/MDAnalysisTests/lib" + - NOSE_COVERAGE_FILE="nose_coverage" + - PYTEST_COVERAGE_FILE="pytest_coverage" + - MAIN_CMD="pytest ${PYTEST_LIST} ${PYTEST_FLAGS}; python ./testsuite/MDAnalysisTests/mda_nosetests ${NOSE_TEST_LIST} ${NOSE_FLAGS}" - SETUP_CMD="" - BUILD_CMD="pip install -v package/ && pip install testsuite/" - - CONDA_DEPENDENCIES="mmtf-python nose=1.3.7 mock six biopython networkx cython joblib nose-timer" - - CONDA_ALL_DEPENDENCIES="mmtf-python nose=1.3.7 mock six biopython networkx cython joblib nose-timer matplotlib netcdf4 scikit-learn scipy seaborn coveralls clustalw=2.1" + - CONDA_DEPENDENCIES="mmtf-python nose=1.3.7 mock six biopython networkx cython joblib nose-timer pytest=3.1.2 pytest-cov=2.5.1" + - CONDA_ALL_DEPENDENCIES="mmtf-python nose=1.3.7 mock six biopython networkx cython joblib nose-timer matplotlib netcdf4 scikit-learn scipy seaborn coveralls clustalw=2.1 pytest=3.1.2 pytest-cov=2.5.1" # Install griddataformats from PIP so that scipy is only installed in the full build (#1147) - PIP_DEPENDENCIES='griddataformats' - CONDA_CHANNELS='biobuilds conda-forge' @@ -47,7 +48,7 @@ matrix: env: NAME='minimal' PYTHON_VERSION=2.7 MEMLEAK='--with-memleak' - MAIN_CMD='python ./testsuite/MDAnalysisTests/mda_nosetests ${NOSE_TEST_LIST1} ${NOSE_FLAGS} ${MEMLEAK}; python ./testsuite/MDAnalysisTests/mda_nosetests ${NOSE_TEST_LIST2} ${NOSE_FLAGS} ${MEMLEAK}' + MAIN_CMD='pytest ${PYTEST_LIST} ${PYTEST_FLAGS}; python ./testsuite/MDAnalysisTests/mda_nosetests ${NOSE_TEST_LIST} ${NOSE_FLAGS} ${MEMLEAK}' - os: linux env: NAME="Doc" @@ -66,8 +67,9 @@ matrix: - os: linux env: NAME='full' - COVERAGE='--with-coverage --cover-package MDAnalysis' - MAIN_CMD='export COVERAGE_FILE=$NOSE_COVERAGE1; python ./testsuite/MDAnalysisTests/mda_nosetests ${NOSE_TEST_LIST1} ${NOSE_FLAGS} ${COVERAGE}; export COVERAGE_FILE=$NOSE_COVERAGE2; python ./testsuite/MDAnalysisTests/mda_nosetests ${NOSE_TEST_LIST2} ${NOSE_FLAGS} ${COVERAGE}' + NOSE_COVERAGE='--with-coverage --cover-package MDAnalysis' + PYTEST_COVERAGE='--cov=MDAnalysis' + MAIN_CMD='export COVERAGE_FILE=$PYTEST_COVERAGE_FILE; pytest ${PYTEST_LIST} ${PYTEST_FLAGS} ${PYTEST_COVERAGE}; export COVERAGE_FILE=$NOSE_COVERAGE_FILE; python ./testsuite/MDAnalysisTests/mda_nosetests ${NOSE_TEST_LIST} ${NOSE_FLAGS} ${NOSE_COVERAGE}' CONDA_DEPENDENCIES=${CONDA_ALL_DEPENDENCIES} COVERALLS='true' @@ -108,7 +110,7 @@ script: after_success: - | if [[ $COVERALLS == 'true' ]]; then \ - coverage combine $NOSE_COVERAGE1 $NOSE_COVERAGE2; \ + coverage combine $NOSE_COVERAGE_FILE $PYTEST_COVERAGE_FILE; \ coveralls; \ fi # can't use test here since this leads to travis fails even though the build passes diff --git a/testsuite/MDAnalysisTests/lib/test_util.py b/testsuite/MDAnalysisTests/lib/test_util.py index 9110f91ae00..a74e13df56a 100644 --- a/testsuite/MDAnalysisTests/lib/test_util.py +++ b/testsuite/MDAnalysisTests/lib/test_util.py @@ -21,6 +21,8 @@ # from __future__ import absolute_import, division +from unittest import TestCase + from six.moves import range, StringIO import six @@ -124,7 +126,7 @@ def test_strings(self): assert_equal(util.iterable(u"unicode string"), False) -class TestFilename(object): +class TestFilename(TestCase): def setUp(self): self.root = "foo" self.filename = "foo.psf" @@ -161,7 +163,7 @@ def testNamedStream(self): assert_equal(ns.name, self.filename2) -class TestGeometryFunctions(object): +class TestGeometryFunctions(TestCase): def setUp(self): self.e1 = np.array([1., 0, 0]) self.e2 = np.array([0, 1., 0]) @@ -230,7 +232,7 @@ def testDihedral(self): cd = bc + self.e3 assert_almost_equal(mdamath.dihedral(ab, bc, cd), -np.pi / 2) -class TestMakeWhole(object): +class TestMakeWhole(TestCase): """Set up a simple system: +-----------+ @@ -442,7 +444,7 @@ def _fill_cache(self, name, value): self._cache[name] = value -class TestCachedDecorator(object): +class TestCachedDecorator(TestCase): def setUp(self): self.obj = Class_with_Caches() @@ -895,7 +897,7 @@ def test_blocks_of_VE(self): assert_raises(ValueError, util.blocks_of, arr, 2, 1) -class TestNamespace(object): +class TestNamespace(TestCase): def setUp(self): self.ns = util.Namespace()