From de10b1d45b642539a9bf45c1b986f8b53d375ffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ionel=20Cristian=20M=C4=83rie=C8=99?= Date: Mon, 25 Feb 2019 15:30:30 +0200 Subject: [PATCH] Monkeypatch iter_entry_points to yield pytest-cov plugin before other plugins. For now this change doesn't really solve anything, see: https://github.com/pytest-dev/pytest/issues/935#issuecomment-466798841 --- src/pytest-cov.embed | 22 ++++++++++++++++++++++ src/pytest-cov.pth | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/pytest-cov.embed b/src/pytest-cov.embed index 630a2a72..9b9dffb3 100644 --- a/src/pytest-cov.embed +++ b/src/pytest-cov.embed @@ -1,3 +1,25 @@ +try: + import pkg_resources +except ImportError: + pass +else: + def reordered_iter_entry_points(group, name=None, __original=pkg_resources.iter_entry_points): + if group == 'pytest11' and name is None: + delayed_entrypoints = [] + for ep in __original(group): + if ep.name == 'pytest_cov': + yield ep + for delayed_ep in delayed_entrypoints: + yield delayed_ep + delayed_entrypoints = None + elif delayed_entrypoints is None: + yield ep + else: + delayed_entrypoints.append(ep) + else: + for ep in __original(group, name): + yield ep + pkg_resources.iter_entry_points = reordered_iter_entry_points if 'COV_CORE_SOURCE' in os.environ: try: from pytest_cov.embed import init diff --git a/src/pytest-cov.pth b/src/pytest-cov.pth index 91f2b7c7..58f29d02 100644 --- a/src/pytest-cov.pth +++ b/src/pytest-cov.pth @@ -1 +1 @@ -import os, sys;exec('if \'COV_CORE_SOURCE\' in os.environ:\n try:\n from pytest_cov.embed import init\n init()\n except Exception as exc:\n sys.stderr.write(\n "pytest-cov: Failed to setup subprocess coverage. "\n "Environ: {0!r} "\n "Exception: {1!r}\\n".format(\n dict((k, v) for k, v in os.environ.items() if k.startswith(\'COV_CORE\')),\n exc\n )\n )\n') \ No newline at end of file +import os, sys;exec('try:\n import pkg_resources\nexcept ImportError:\n pass\nelse:\n def reordered_iter_entry_points(group, name=None, __original=pkg_resources.iter_entry_points):\n if group == \'pytest11\' and name is None:\n delayed_entrypoints = []\n for ep in __original(group):\n if ep.name == \'pytest_cov\':\n yield ep\n for delayed_ep in delayed_entrypoints:\n yield delayed_ep\n delayed_entrypoints = None\n elif delayed_entrypoints is None:\n yield ep\n else:\n delayed_entrypoints.append(ep)\n else:\n for ep in __original(group, name):\n yield ep\n pkg_resources.iter_entry_points = reordered_iter_entry_points\nif \'COV_CORE_SOURCE\' in os.environ:\n try:\n from pytest_cov.embed import init\n init()\n except Exception as exc:\n sys.stderr.write(\n "pytest-cov: Failed to setup subprocess coverage. "\n "Environ: {0!r} "\n "Exception: {1!r}\\n".format(\n dict((k, v) for k, v in os.environ.items() if k.startswith(\'COV_CORE\')),\n exc\n )\n )\n') \ No newline at end of file pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy