summaryrefslogtreecommitdiff
path: root/coverage/files.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2014-09-21 21:45:53 -0400
committerNed Batchelder <ned@nedbatchelder.com>2014-09-21 21:45:53 -0400
commitd68b95f7a0a201b2e8e830b6d4769005ef0223fa (patch)
tree25eee2671f68dcc391ebcf2127578f4443475bf2 /coverage/files.py
parenteff5f72064a0577fd0b61a634c4196271dc19308 (diff)
downloadpython-coveragepy-git-d68b95f7a0a201b2e8e830b6d4769005ef0223fa.tar.gz
On Windows, we need file matching to be case-insensitive.
Diffstat (limited to 'coverage/files.py')
-rw-r--r--coverage/files.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/coverage/files.py b/coverage/files.py
index 40c126e9..1ed7276e 100644
--- a/coverage/files.py
+++ b/coverage/files.py
@@ -180,8 +180,13 @@ class FnmatchMatcher(object):
# fnmatch is platform-specific. On Windows, it does the Windows thing
# of treating / and \ as equivalent. But on other platforms, we need to
# take care of that ourselves.
- fnpats = [fnmatch.translate(p) for p in pats]
- fnpats = [p.replace(r"\/", r"[\\/]") for p in fnpats]
+ fnpats = (fnmatch.translate(p) for p in pats)
+ fnpats = (p.replace(r"\/", r"[\\/]") for p in fnpats)
+ if sys.platform == 'win32':
+ # Windows is also case-insensitive. BTW: the regex docs say that
+ # flags like (?i) have to be at the beginning, but fnmatch puts
+ # them at the end, and have two there seems to work fine.
+ fnpats = (p + "(?i)" for p in fnpats)
self.re = re.compile(join_regex(fnpats))
def __repr__(self):