From 3e8d3bd4f9acbb30eef2da2485a5599b862e7cae Mon Sep 17 00:00:00 2001 From: Will Holmgren Date: Thu, 14 Jan 2016 16:26:14 -0700 Subject: [PATCH 1/5] avoid the conda/travis/pip/scipy mess with a simple skip --- ci/requirements-py34.yml | 7 ++++--- ci/requirements-py35.yml | 7 ++++--- pvlib/test/__init__.py | 29 +++++++++++++++++++++++++++++ pvlib/test/test_pvsystem.py | 5 +++-- 4 files changed, 40 insertions(+), 8 deletions(-) diff --git a/ci/requirements-py34.yml b/ci/requirements-py34.yml index efcf7848a2..d0d27ceec9 100644 --- a/ci/requirements-py34.yml +++ b/ci/requirements-py34.yml @@ -1,11 +1,12 @@ name: test_env dependencies: - python=3.4 + - numpy + - scipy + - pandas - nose - pytz - ephem - #- numba + - numba - pip: - - numpy - - pandas - coveralls \ No newline at end of file diff --git a/ci/requirements-py35.yml b/ci/requirements-py35.yml index 219a1025e8..c6d348f406 100644 --- a/ci/requirements-py35.yml +++ b/ci/requirements-py35.yml @@ -1,11 +1,12 @@ name: test_env dependencies: - python=3.5 + - numpy + - scipy + - pandas - nose - pytz - ephem -# - numba + - numba - pip: - - numpy - - pandas - coveralls \ No newline at end of file diff --git a/pvlib/test/__init__.py b/pvlib/test/__init__.py index e69de29bb2..b7ec64b653 100644 --- a/pvlib/test/__init__.py +++ b/pvlib/test/__init__.py @@ -0,0 +1,29 @@ +import sys + +try: + import unittest2 as unittest +except ImportError: + import unittest + +try: + import scipy + has_scipy = True +except ImportError: + has_scipy = False + +def requires_scipy(test): + return test if has_scipy else unittest.skip('requires scipy')(test) + +def incompatible_conda_py3(test): + """ + Test won't work in Python 3.x due to Anaconda issue. + """ + major = sys.version_info[0] + minor = sys.version_info[1] + + if major == 3: + out = unittest.skip('error on Python 3 due to anaconda')(test) + else: + out = test + + return out diff --git a/pvlib/test/test_pvsystem.py b/pvlib/test/test_pvsystem.py index babe1c0df1..3189ea117b 100644 --- a/pvlib/test/test_pvsystem.py +++ b/pvlib/test/test_pvsystem.py @@ -10,6 +10,7 @@ from nose.tools import assert_equals, assert_almost_equals from pandas.util.testing import assert_series_equal, assert_frame_equal +from . import incompatible_conda_py3 from pvlib import tmy from pvlib import pvsystem @@ -122,7 +123,7 @@ def test_calcparams_desoto(): EgRef=1.121, dEgdT=-0.0002677) - +@incompatible_conda_py3 def test_i_from_v(): output = pvsystem.i_from_v(20, .1, .5, 40, 6e-7, 7) assert_almost_equals(-299.746389916, output, 5) @@ -140,7 +141,7 @@ def test_singlediode_series(): out = pvsystem.singlediode(cecmodule, IL, I0, Rs, Rsh, nNsVth) assert isinstance(out, pd.DataFrame) - +@incompatible_conda_py3 def test_singlediode_series(): cecmodule = sam_data['cecmod'].Example_Module out = pvsystem.singlediode(cecmodule, 7, 6e-7, .1, 20, .5) From bb3a03b75c5f1a634b250d495c0e2ba2bdcce4f0 Mon Sep 17 00:00:00 2001 From: Will Holmgren Date: Thu, 14 Jan 2016 16:39:06 -0700 Subject: [PATCH 2/5] remove the install scipy command from the primary travis file --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 26e62d879c..6f7bf9b0ee 100644 --- a/.travis.yml +++ b/.travis.yml @@ -68,7 +68,7 @@ install: - echo $PATH - ls -l /home/travis/miniconda/envs/test_env/lib #- pip install . # use pip to automatically install anything not in the yml files (i.e. numpy/scipy/pandas for py3*) - - pip install scipy # won't do anything if already installed + #- pip install scipy # won't do anything if already installed - python setup.py install script: From 3cc64ae4ceccd8e859110306de0c0dda214d8b82 Mon Sep 17 00:00:00 2001 From: Will Holmgren Date: Thu, 14 Jan 2016 16:48:24 -0700 Subject: [PATCH 3/5] credit xray/xarray team --- pvlib/test/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pvlib/test/__init__.py b/pvlib/test/__init__.py index b7ec64b653..efe0729223 100644 --- a/pvlib/test/__init__.py +++ b/pvlib/test/__init__.py @@ -1,3 +1,6 @@ +# the has/skip patterns closely follow the examples set by +# the xray/xarray project + import sys try: From 4a5565f114244245e4de9d36a64a3480b1a729a5 Mon Sep 17 00:00:00 2001 From: Will Holmgren Date: Fri, 15 Jan 2016 15:12:19 -0700 Subject: [PATCH 4/5] remove unnecessary travis env addons --- .travis.yml | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6f7bf9b0ee..e644c5a6e9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,26 +14,8 @@ matrix: env: CONDA_ENV=py27 - python: 3.4 env: CONDA_ENV=py34 - addons: - apt: - packages: - - libatlas-dev - - libatlas-base-dev - - liblapack-dev - - gfortran - - libgmp-dev - - libmpfr-dev - python: 3.5 env: CONDA_ENV=py35 - addons: - apt: - packages: - - libatlas-dev - - libatlas-base-dev - - liblapack-dev - - gfortran - - libgmp-dev - - libmpfr-dev addons: apt: From 128851221e4cba3f33a6438923f4a51eff240c19 Mon Sep 17 00:00:00 2001 From: Will Holmgren Date: Fri, 15 Jan 2016 15:50:40 -0700 Subject: [PATCH 5/5] make skip specific to linux --- pvlib/test/__init__.py | 8 +++++--- pvlib/test/test_pvsystem.py | 6 +++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/pvlib/test/__init__.py b/pvlib/test/__init__.py index efe0729223..e49bf69687 100644 --- a/pvlib/test/__init__.py +++ b/pvlib/test/__init__.py @@ -2,6 +2,7 @@ # the xray/xarray project import sys +import platform try: import unittest2 as unittest @@ -17,15 +18,16 @@ def requires_scipy(test): return test if has_scipy else unittest.skip('requires scipy')(test) -def incompatible_conda_py3(test): +def incompatible_conda_linux_py3(test): """ Test won't work in Python 3.x due to Anaconda issue. """ major = sys.version_info[0] minor = sys.version_info[1] + system = platform.system() - if major == 3: - out = unittest.skip('error on Python 3 due to anaconda')(test) + if major == 3 and system == 'Linux': + out = unittest.skip('error on Linux Python 3 due to Anaconda')(test) else: out = test diff --git a/pvlib/test/test_pvsystem.py b/pvlib/test/test_pvsystem.py index 3189ea117b..0abc9c78fc 100644 --- a/pvlib/test/test_pvsystem.py +++ b/pvlib/test/test_pvsystem.py @@ -10,7 +10,7 @@ from nose.tools import assert_equals, assert_almost_equals from pandas.util.testing import assert_series_equal, assert_frame_equal -from . import incompatible_conda_py3 +from . import incompatible_conda_linux_py3 from pvlib import tmy from pvlib import pvsystem @@ -123,7 +123,7 @@ def test_calcparams_desoto(): EgRef=1.121, dEgdT=-0.0002677) -@incompatible_conda_py3 +@incompatible_conda_linux_py3 def test_i_from_v(): output = pvsystem.i_from_v(20, .1, .5, 40, 6e-7, 7) assert_almost_equals(-299.746389916, output, 5) @@ -141,7 +141,7 @@ def test_singlediode_series(): out = pvsystem.singlediode(cecmodule, IL, I0, Rs, Rsh, nNsVth) assert isinstance(out, pd.DataFrame) -@incompatible_conda_py3 +@incompatible_conda_linux_py3 def test_singlediode_series(): cecmodule = sam_data['cecmod'].Example_Module out = pvsystem.singlediode(cecmodule, 7, 6e-7, .1, 20, .5)