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",
]