From 59cacbcdc5c5bee6250e6461a1138f72e2271593 Mon Sep 17 00:00:00 2001 From: Vinay Sajip Date: Fri, 7 Jun 2019 19:47:34 +0100 Subject: Added environment check. --- setup.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/setup.py b/setup.py index f0891d6..86156ed 100644 --- a/setup.py +++ b/setup.py @@ -2,9 +2,34 @@ import distutils.core import logutils +import os from os.path import join, dirname, abspath import re +def missing_files(): + result = [] + if os.name == 'nt': + + def found_file(fn): + if os.path.exists(fn): + return True + for d in os.environ['PATH'].split(os.pathsep): + p = os.path.join(d, fn) + if os.path.exists(p): + return True + return False + + FILES = ('cat.exe', 'echo.exe', 'tee.exe', 'false.exe', 'true.exe', + 'sleep.exe', 'touch.exe') + if 'APPVEYOR' not in os.environ: + FILES = ('libiconv2.dll', 'libintl3.dll') + FILES + + missing = [] + for fn in FILES: + if not found_file(fn): + result.append(fn) + return result + def description(): f = open(join(dirname(__file__), 'README.rst')) @@ -20,6 +45,13 @@ class TestCommand(distutils.core.Command): user_options = [] def run(self): + missing = missing_files() + + if missing: + missing = ', '.join(missing) + raise ValueError('Can\'t find one or more files needed for ' + 'tests: %s' % missing) + import sys import unittest -- cgit v1.2.1