summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coverage/files.py2
-rw-r--r--test/test_files.py7
2 files changed, 8 insertions, 1 deletions
diff --git a/coverage/files.py b/coverage/files.py
index 23f1bdef..93a5ab2f 100644
--- a/coverage/files.py
+++ b/coverage/files.py
@@ -164,7 +164,7 @@ class PathAliases(object):
# Make a regex from the pattern. fnmatch always adds a \Z or $ to
# match the whole string, which we don't want.
- regex_pat = fnmatch.translate(pattern).replace(r'\Z', '')
+ regex_pat = fnmatch.translate(pattern).replace(r'\Z(', '(')
if regex_pat.endswith("$"):
regex_pat = regex_pat[:-1]
regex = re.compile("(?i)" + regex_pat)
diff --git a/test/test_files.py b/test/test_files.py
index 2f26c7b5..565bbaa4 100644
--- a/test/test_files.py
+++ b/test/test_files.py
@@ -120,6 +120,13 @@ class PathAliasesTest(CoverageTest):
aliases.add, "/ned/home/*/*/", "fooey"
)
+ def test_no_accidental_munging(self):
+ aliases = PathAliases()
+ aliases.add(r'c:\Zoo\boo', 'src/')
+ aliases.add('/home/ned$', 'src/')
+ self.assertEqual(aliases.map(r'c:\Zoo\boo\foo.py'), 'src/foo.py')
+ self.assertEqual(aliases.map(r'/home/ned$/foo.py'), 'src/foo.py')
+
def test_paths_are_os_corrected(self):
aliases = PathAliases()
aliases.add('/home/ned/*/src', './mysrc')