From cb0028b44974f661d6e2699209ab7045cd6349ab Mon Sep 17 00:00:00 2001 From: Robert Scott Date: Sat, 4 May 2019 23:16:06 +0100 Subject: [PATCH] pythonPackages.cartopy: fix tests for py2.7 by supplying them with xvfb python 2.7's tk is over-eager in trying to open an x display, so run it in xvfb. xvfb is quite a heavy dependency (albeit only a build-time one), so ensure this is only used when needed. --- pkgs/development/python-modules/cartopy/default.nix | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/cartopy/default.nix b/pkgs/development/python-modules/cartopy/default.nix index 3fc4c3e84ed..28148450f07 100644 --- a/pkgs/development/python-modules/cartopy/default.nix +++ b/pkgs/development/python-modules/cartopy/default.nix @@ -1,8 +1,9 @@ { buildPythonPackage, lib, fetchPypi , pytest, filelock, mock, pep8 -, cython, isPy37, glibcLocales +, cython, isPy27, isPy37, glibcLocales , six, pyshp, shapely, geos, proj, numpy , gdal, pillow, matplotlib, pyepsg, pykdtree, scipy, owslib, fiona +, xvfb_run }: buildPythonPackage rec { @@ -17,10 +18,14 @@ buildPythonPackage rec { checkInputs = [ filelock mock pytest pep8 ]; - # several tests require network connectivity: we disable them - checkPhase = '' + # several tests require network connectivity: we disable them. + # also py2.7's tk is over-eager in trying to open an x display, + # so give it xvfb + checkPhase = let + maybeXvfbRun = lib.optionalString isPy27 "${xvfb_run}/bin/xvfb-run"; + in '' export HOME=$(mktemp -d) - pytest --pyargs cartopy \ + ${maybeXvfbRun} pytest --pyargs cartopy \ -m "not network and not natural_earth" \ -k "not test_nightshade_image" '';