From e0198af6e93a91cbf31047c6597060ffa2d380a0 Mon Sep 17 00:00:00 2001 From: Valentin Lab Date: Mon, 14 Dec 2020 16:19:29 +0100 Subject: [PATCH] fix: combine aliases on windows base dirs (ie: ``X:\``) (fixes: #577) Signed-off-by: Valentin Lab --- coverage/files.py | 6 ++++-- coverage/misc.py | 6 +++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/coverage/files.py b/coverage/files.py index 5c2ff1ace..59b2bd61d 100644 --- a/coverage/files.py +++ b/coverage/files.py @@ -359,17 +359,19 @@ def add(self, pattern, result): match an entire tree, and not just its root. """ + pattern_sep = sep(pattern) + if len(pattern) > 1: pattern = pattern.rstrip(r"\/") # The pattern can't end with a wildcard component. if pattern.endswith("*"): raise CoverageException("Pattern must not end with wildcards.") - pattern_sep = sep(pattern) # The pattern is meant to match a filepath. Let's make it absolute # unless it already is, or is meant to match any prefix. - if not pattern.startswith('*') and not isabs_anywhere(pattern): + if not pattern.startswith('*') and not isabs_anywhere(pattern + + pattern_sep): pattern = abs_file(pattern) if not pattern.endswith(pattern_sep): pattern += pattern_sep diff --git a/coverage/misc.py b/coverage/misc.py index 5c4381ab6..1cceb92c2 100644 --- a/coverage/misc.py +++ b/coverage/misc.py @@ -32,7 +32,11 @@ def isolate_module(mod): if mod not in ISOLATED_MODULES: new_mod = types.ModuleType(mod.__name__) ISOLATED_MODULES[mod] = new_mod - for name in dir(mod): + attributes = dir(mod) + if mod.__name__ == "sys": + attributes = set(attributes) - set(["__stdout__", "__stdin__", + "stdout", "stdin"]) + for name in attributes: value = getattr(mod, name) if isinstance(value, types.ModuleType): value = isolate_module(value)