diff --git a/.travis.yml b/.travis.yml index 56901a44412d..74c98b1c790f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -43,13 +43,20 @@ env: - secure: RgJI7BBL8aX5FTOQe7xiXqWHMxWokd6GNUWp1NUV2mRLXPb9dI0RXqZt3UJwKTAzf1z/OtlHDmEkBoTVK81E9iUxK5npwyyjhJ8yTJmwfQtQF2n51Q1Ww9p+XSLORrOzZc7kAo6Kw6FIXN1pfctgYq2bQkrwJPRx/oPR8f6hcbY= - secure: E7OCdqhZ+PlwJcn+Hd6ns9TDJgEUXiUNEI0wu7xjxB2vBRRIKtZMbuaZjd+iKDqCKuVOJKu0ClBUYxmgmpLicTwi34CfTUYt6D4uhrU+8hBBOn1iiK51cl/aBvlUUrqaRLVhukNEBGZcyqAjXSA/Qsnp2iELEmAfOUa92ZYo1sk= - secure: "dfjNqGKzQG5bu3FnDNwLG8H/C4QoieFo4PfFmZPdM2RY7WIzukwKFNT6kiDfOrpwt+2bR7FhzjOGlDECGtlGOtYPN8XuXGjhcP4a4IfakdbDfF+D3NPIpf5VlE6776k0VpvcZBTMYJKNFIMc7QPkOwjvNJ2aXyfe3hBuGlKJzQU=" + - CYCLER=cycler + - DATEUTIL=python-dateutil + - MOCK= + - NOSE= - NUMPY=numpy - - OPENBLAS_NUM_THREADS=1 - PANDAS= + - PYPARSING=pyparsing + - PYTEST=pytest!=3.3.0 + - PYTEST_COV=pytest-cov + - PYTEST_PEP8= + - SPHINX=sphinx + - OPENBLAS_NUM_THREADS=1 - NPROC=2 - - INSTALL_PEP8= - RUN_PEP8= - - NOSE= - PYTEST_ARGS="-rawR --maxfail=50 --timeout=300 --durations=25 --cov-report= --cov=lib -n $NPROC" - PYTHON_ARGS= - DELETE_FONT_CACHE= @@ -57,11 +64,22 @@ env: matrix: include: - python: 2.7 - env: MOCK=mock NUMPY=numpy==1.7.1 PANDAS=pandas NOSE=nose + # pytest-cov>=2.3.1 due to https://github.com/pytest-dev/pytest-cov/issues/124. + env: + - CYCLER=cycler==0.10 + - DATEUTIL=python-dateutil==2.1 + - MOCK=mock + - NOSE=nose + - NUMPY=numpy==1.7.1 + - PANDAS='pandas<0.21.0' + - PYPARSING=pyparsing==2.0.1 + - PYTEST=pytest==3.1.0 + - PYTEST_COV=pytest-cov==2.3.1 + - SPHINX=sphinx==1.3 - python: 3.4 env: PYTHON_ARGS=-OO - python: 3.6 - env: DELETE_FONT_CACHE=1 INSTALL_PEP8=pytest-pep8 RUN_PEP8=--pep8 PANDAS=pandas + env: DELETE_FONT_CACHE=1 PANDAS='pandas<0.21.0' PYTEST_PEP8=pytest-pep8 RUN_PEP8=--pep8 - python: "nightly" env: PRE=--pre - os: osx @@ -108,8 +126,11 @@ install: # Upgrade pip and setuptools and wheel to get as clean an install as possible pip install --upgrade pip setuptools wheel - | - # Install dependencies from pypi + # Install dependencies from PyPI pip install --upgrade $PRE \ + codecov \ + coverage \ + $CYCLER \ $MOCK \ $NOSE \ $NUMPY \ @@ -117,7 +138,9 @@ install: codecov \ coverage \ pillow \ - sphinx + $PYPARSING \ + $DATEUTIL \ + $SPHINX # GUI toolkits are pip-installable only for some versions of Python so # don't fail if we can't install them. Make it easier to check whether the # install was successful by trying to import the toolkit (sometimes, the @@ -134,15 +157,14 @@ install: echo 'wxPython is available' || echo 'wxPython is not available' - # pytest-cov>=2.3.1 due to https://github.com/pytest-dev/pytest-cov/issues/124 pip install $PRE \ - pytest!=3.3.0 \ - pytest-cov>=2.3.1 \ + $PYTEST \ + $PYTEST_COV \ pytest-faulthandler \ + $PYTEST_PEP8 \ pytest-rerunfailures \ pytest-timeout \ - pytest-xdist \ - $INSTALL_PEP8 + pytest-xdist # Use the special local version of freetype for testing cp ci/travis/setup.cfg . diff --git a/INSTALL.rst b/INSTALL.rst index 0143329a61ae..68f669da18a0 100644 --- a/INSTALL.rst +++ b/INSTALL.rst @@ -171,7 +171,7 @@ Matplotlib requires a large number of dependencies: * `Python `_ (>= 2.7 or >= 3.4) * `NumPy `_ (>= |minimum_numpy_version|) * `setuptools `__ - * `dateutil `_ (>= 2.0) + * `dateutil `_ (>= 2.1) * `pyparsing `__ * `libpng `__ (>= 1.2) * `pytz `__ diff --git a/doc/devel/contributing.rst b/doc/devel/contributing.rst index e77e667b313a..e334371f3d93 100644 --- a/doc/devel/contributing.rst +++ b/doc/devel/contributing.rst @@ -152,8 +152,8 @@ environment is set up properly:: .. note:: - **Additional dependencies for testing**: pytest_ (version 3.0 or later), - mock_ (if python < 3.3), Ghostscript_, Inkscape_ + **Additional dependencies for testing**: pytest_ (version 3.1 or later), + mock_ (if Python 2), Ghostscript_, Inkscape_ .. seealso:: diff --git a/doc/devel/testing.rst b/doc/devel/testing.rst index d5ed965cc7d5..92e125bcf7de 100644 --- a/doc/devel/testing.rst +++ b/doc/devel/testing.rst @@ -26,14 +26,14 @@ local FreeType build The following software is required to run the tests: - - pytest_, version 3.0.0 or later - - mock_, when running Python versions < 3.3 + - pytest_ (>=3.1) + - mock_, when running Python 2 - Ghostscript_ (to render PDF files) - Inkscape_ (to render SVG files) Optionally you can install: - - pytest-cov_ to collect coverage information + - pytest-cov_ (>=2.3.1) to collect coverage information - pytest-pep8_ to test coding standards - pytest-timeout_ to limit runtime in case of stuck tests - pytest-xdist_ to run tests in parallel diff --git a/setupext.py b/setupext.py index 378b366f0c0e..d62ffbe6cf79 100644 --- a/setupext.py +++ b/setupext.py @@ -798,7 +798,7 @@ def get_namespace_packages(self): class Tests(OptionalPackage): name = "tests" - pytest_min_version = '3.0.0' + pytest_min_version = '3.1' default_config = False def check(self): @@ -1465,7 +1465,7 @@ def get_install_requires(self): install_requires = [ "cycler>=0.10", "pyparsing>=2.0.1,!=2.0.4,!=2.1.2,!=2.1.6", - "python-dateutil>=2.0", + "python-dateutil>=2.1", "pytz", "six>=1.10", ]