warnings.warn('Will skip tests requiring SSH access to GitHub', RuntimeWarning) HAS_WARNED_GITHUB = True return res def check_for_mercurial(): c = subprocess_run("hg --help", shell=True) return c.returncode == 0 TESTS_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) PYPI_VENDOR_DIR = os.path.join(TESTS_ROOT, 'pypi') WE_HAVE_HG = check_for_mercurial() prepare_fixtures(os.path.join(PYPI_VENDOR_DIR, "fixtures")) prepare_pypi_packages(PYPI_VENDOR_DIR) def pytest_runtest_setup(item): if item.get_closest_marker( 'needs_internet') is not None and not WE_HAVE_INTERNET: pytest.skip('requires internet') if item.get_closest_marker( 'needs_github_ssh') is not None and not WE_HAVE_GITHUB_SSH_KEYS: pytest.skip('requires github ssh') if item.get_closest_marker('needs_hg') is not None and not WE_HAVE_HG: pytest.skip('requires mercurial') if item.get_closest_marker('skip_py27_win') is not None and ( sys.version_info[:2] <= (2, 7) and os.name == "nt"): pytest.skip('must use python > 2.7 on windows') if item.get_closest_marker('skip_py38') is not None and (
try: # Kenneth represents the Internet LGTM. resp = requests.get('http://httpbin.org/ip', timeout=1.0) resp.raise_for_status() except Exception: warnings.warn('Cannot connect to HTTPBin...', ResourceWarning) warnings.warn('Will skip tests requiring Internet', ResourceWarning) return False return True WE_HAVE_INTERNET = check_internet() TESTS_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) PYPI_VENDOR_DIR = os.path.join(TESTS_ROOT, 'pypi') prepare_pypi_packages(PYPI_VENDOR_DIR) def pytest_runtest_setup(item): if item.get_marker('needs_internet') is not None and not WE_HAVE_INTERNET: pytest.skip('requires internet') class _PipenvInstance(object): """An instance of a Pipenv Project...""" def __init__(self, pypi=None, pipfile=True, chdir=False): self.pypi = pypi self.original_umask = os.umask(0o007) self.original_dir = os.path.abspath(os.curdir) self._path = TemporaryDirectory(suffix='-project', prefix='pipenv-') path = Path(self._path.name)