From c89734b661d32345f3302b8026c799bde96d6839 Mon Sep 17 00:00:00 2001 From: Sean Seyler Date: Wed, 9 Dec 2015 16:26:27 -0700 Subject: [PATCH 1/5] Using TempDir() for testing PSA --- package/MDAnalysis/analysis/psa.py | 2 +- testsuite/MDAnalysisTests/analysis/test_psa.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/package/MDAnalysis/analysis/psa.py b/package/MDAnalysis/analysis/psa.py index c7cbeba5888..610e1fc4e27 100644 --- a/package/MDAnalysis/analysis/psa.py +++ b/package/MDAnalysis/analysis/psa.py @@ -1075,7 +1075,7 @@ class PSAnalysis(object): """ def __init__(self, universes, reference=None, ref_select='name CA', ref_frame=0, path_select=None, labels=None, - targetdir=None): + targetdir=os.path.curdir): """Setting up Path Similarity Analysis. The mutual similarity between all unique pairs of trajectories diff --git a/testsuite/MDAnalysisTests/analysis/test_psa.py b/testsuite/MDAnalysisTests/analysis/test_psa.py index 907399644b3..b67a2d864f5 100644 --- a/testsuite/MDAnalysisTests/analysis/test_psa.py +++ b/testsuite/MDAnalysisTests/analysis/test_psa.py @@ -21,7 +21,7 @@ from numpy.testing import TestCase, assert_array_less, assert_array_almost_equal import numpy as np -import tempfile +import tempdir import shutil from MDAnalysisTests.datafiles import PSF, DCD, DCD2 @@ -36,7 +36,8 @@ def setUp(self): self.universe_rev = MDAnalysis.Universe(PSF, DCD) self.universes = [self.universe1, self.universe2, self.universe_rev] self.psa = MDAnalysis.analysis.psa.PSAnalysis(self.universes, \ - path_select='name CA') + path_select='name CA', \ + targetdir=tempdir.TempDir()) self.psa.generate_paths(align=True) self.psa.paths[-1] = self.psa.paths[-1][::-1,:,:] # reverse third path self._run() From 9716b527e1aade0a946d7768614a33dedabf5538 Mon Sep 17 00:00:00 2001 From: Sean Seyler Date: Wed, 9 Dec 2015 17:14:54 -0700 Subject: [PATCH 2/5] Fixed usage of tempdir --- testsuite/MDAnalysisTests/analysis/test_psa.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/testsuite/MDAnalysisTests/analysis/test_psa.py b/testsuite/MDAnalysisTests/analysis/test_psa.py index b67a2d864f5..9842d7b4fda 100644 --- a/testsuite/MDAnalysisTests/analysis/test_psa.py +++ b/testsuite/MDAnalysisTests/analysis/test_psa.py @@ -30,6 +30,8 @@ class TestPSAnalysis(TestCase): def setUp(self): + self.tmpdir = tempdir.TempDir() + self.outdir = self.tmpdir.name self.iu1 = np.triu_indices(3, k=1) self.universe1 = MDAnalysis.Universe(PSF, DCD) self.universe2 = MDAnalysis.Universe(PSF, DCD2) @@ -37,7 +39,7 @@ def setUp(self): self.universes = [self.universe1, self.universe2, self.universe_rev] self.psa = MDAnalysis.analysis.psa.PSAnalysis(self.universes, \ path_select='name CA', \ - targetdir=tempdir.TempDir()) + targetdir=self.outdir) self.psa.generate_paths(align=True) self.psa.paths[-1] = self.psa.paths[-1][::-1,:,:] # reverse third path self._run() @@ -51,11 +53,15 @@ def _run(self): self.frech_dists = self.frech_matrix[self.iu1] def tearDown(self): + try: + os.unlink(self.outfile) + except: + pass del self.universe1 del self.universe2 del self.universe_rev del self.psa - shutil.rmtree('psadata') # remove psa data directory + del self.tmpdir def test_hausdorff_bound(self): err_msg = "Some Frechet distances are smaller than corresponding " \ From 692fdf0e47f634706fe337dccaf5e73bf2ac9956 Mon Sep 17 00:00:00 2001 From: Sean Seyler Date: Wed, 9 Dec 2015 17:16:34 -0700 Subject: [PATCH 3/5] Fixed typo --- testsuite/MDAnalysisTests/analysis/test_psa.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testsuite/MDAnalysisTests/analysis/test_psa.py b/testsuite/MDAnalysisTests/analysis/test_psa.py index 9842d7b4fda..b49a898410b 100644 --- a/testsuite/MDAnalysisTests/analysis/test_psa.py +++ b/testsuite/MDAnalysisTests/analysis/test_psa.py @@ -54,7 +54,7 @@ def _run(self): def tearDown(self): try: - os.unlink(self.outfile) + os.unlink(self.outdir) except: pass del self.universe1 From bf75c7e8e01f64f3bc8145fcbf954290e6225058 Mon Sep 17 00:00:00 2001 From: Sean Seyler Date: Wed, 9 Dec 2015 17:27:23 -0700 Subject: [PATCH 4/5] Now using tempfile.mkdtemp() and shutil to delete --- testsuite/MDAnalysisTests/analysis/test_psa.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/testsuite/MDAnalysisTests/analysis/test_psa.py b/testsuite/MDAnalysisTests/analysis/test_psa.py index b49a898410b..0989d32f3eb 100644 --- a/testsuite/MDAnalysisTests/analysis/test_psa.py +++ b/testsuite/MDAnalysisTests/analysis/test_psa.py @@ -21,17 +21,15 @@ from numpy.testing import TestCase, assert_array_less, assert_array_almost_equal import numpy as np -import tempdir +import tempfile import shutil from MDAnalysisTests.datafiles import PSF, DCD, DCD2 - class TestPSAnalysis(TestCase): def setUp(self): - self.tmpdir = tempdir.TempDir() - self.outdir = self.tmpdir.name + self.tmpdir = tempfile.mkdtemp() self.iu1 = np.triu_indices(3, k=1) self.universe1 = MDAnalysis.Universe(PSF, DCD) self.universe2 = MDAnalysis.Universe(PSF, DCD2) @@ -39,7 +37,7 @@ def setUp(self): self.universes = [self.universe1, self.universe2, self.universe_rev] self.psa = MDAnalysis.analysis.psa.PSAnalysis(self.universes, \ path_select='name CA', \ - targetdir=self.outdir) + targetdir=self.tmpdir) self.psa.generate_paths(align=True) self.psa.paths[-1] = self.psa.paths[-1][::-1,:,:] # reverse third path self._run() @@ -53,15 +51,12 @@ def _run(self): self.frech_dists = self.frech_matrix[self.iu1] def tearDown(self): - try: - os.unlink(self.outdir) - except: - pass del self.universe1 del self.universe2 del self.universe_rev del self.psa - del self.tmpdir + if self.tmpdir: + shutil.rmtree(self.tmpdir) def test_hausdorff_bound(self): err_msg = "Some Frechet distances are smaller than corresponding " \ From 50101f5594bc30fe19463d8bdb81f39f41fdf18b Mon Sep 17 00:00:00 2001 From: Richard Gowers Date: Wed, 9 Dec 2015 13:51:22 -0700 Subject: [PATCH 5/5] Fixes Issue #576 Added fix for missing libgfortran Tagged persistencelength scipy tests as optional Removed verbose from nosetests, caused travis page to be slow to use --- .travis.yml | 7 ++++--- .../MDAnalysisTests/analysis/test_persistencelength.py | 8 ++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index a2814f960bb..0396ec857e0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,7 @@ addons: apt: packages: - gfortran + - libgfortran3 - libhdf5-serial-dev - libnetcdf-dev - liblapack-dev @@ -28,8 +29,8 @@ before_install: - export PATH=/home/travis/miniconda/bin:$PATH - conda update --yes conda install: - - if [[ $SETUP == 'full' ]]; then conda create --yes -q -n pyenv mkl python=2.7 numpy=1.9.1 scipy=0.14.0 nose=1.3.7 sphinx=1.3; fi - - if [[ $SETUP == 'minimal' ]]; then conda create --yes -q -n pyenv python=2.7 numpy=1.9.1 nose=1.3.7 sphinx=1.3; fi + - if [[ $SETUP == 'full' ]]; then conda create --yes -q -n pyenv python=2.7 numpy=1.9.2 scipy=0.16.0 nose=1.3.7 sphinx=1.3; fi + - if [[ $SETUP == 'minimal' ]]; then conda create --yes -q -n pyenv python=2.7 numpy=1.9.2 nose=1.3.7 sphinx=1.3; fi - source activate pyenv - if [[ $SETUP == 'full' ]]; then conda install --yes python=$TRAVIS_PYTHON_VERSION cython biopython matplotlib networkx netcdf4; fi - if [[ $SETUP == 'minimal' ]]; then conda install --yes python=$TRAVIS_PYTHON_VERSION biopython networkx; fi @@ -40,7 +41,7 @@ install: - chmod +x testsuite/MDAnalysisTests/mda_nosetests # command to run tests script: - - ./testsuite/MDAnalysisTests/mda_nosetests -v --with-coverage --cover-package MDAnalysis --processes=2 --process-timeout=300 --with-memleak + - ./testsuite/MDAnalysisTests/mda_nosetests --with-coverage --cover-package MDAnalysis --processes=2 --process-timeout=300 --with-memleak - | test ${TRAVIS_PULL_REQUEST} == "false" && \ test ${TRAVIS_BRANCH} == ${GH_DOC_BRANCH} && \ diff --git a/testsuite/MDAnalysisTests/analysis/test_persistencelength.py b/testsuite/MDAnalysisTests/analysis/test_persistencelength.py index 3895722028a..68ad2ff001d 100644 --- a/testsuite/MDAnalysisTests/analysis/test_persistencelength.py +++ b/testsuite/MDAnalysisTests/analysis/test_persistencelength.py @@ -22,9 +22,11 @@ assert_, assert_almost_equal, assert_raises, + dec ) from MDAnalysisTests.datafiles import Plength +from MDAnalysisTests import module_not_found class TestPersistenceLength(object): @@ -52,6 +54,8 @@ def test_run(self): assert_(len(p.results) == 280) assert_almost_equal(p.lb, 1.485, 3) + @dec.skipif(module_not_found('scipy'), + "Test skipped because scipy is not available.") def test_fit(self): p = self._make_p() p.run() @@ -72,10 +76,14 @@ def tearDown(self): del self.a_ref del self.y + @dec.skipif(module_not_found('scipy'), + "Test skipped because scipy is not available.") def test_fit_simple(self): a = polymer.fit_exponential_decay(self.x, self.y) assert_(a == self.a_ref) + @dec.skipif(module_not_found('scipy'), + "Test skipped because scipy is not available.") def test_fit_noisy(self): y2 = self.y + (np.random.random(len(self.y)) - 0.5) * 0.05 a = polymer.fit_exponential_decay(self.x, y2)