summaryrefslogtreecommitdiff
path: root/tests/test_files.py
diff options
context:
space:
mode:
authorbuck <buck.2019@gmail.com>2014-10-15 12:04:05 -0700
committerbuck <buck.2019@gmail.com>2014-10-15 12:04:05 -0700
commit05be6e3d5fc76a403918ad47d9c083191f588f0f (patch)
treee59ca82ce4ca435f94ccc965eb673b53a4f5b3df /tests/test_files.py
parent95861aa3be82af5fcb700ce5ea94029db7b4b5c5 (diff)
downloadpython-coveragepy-05be6e3d5fc76a403918ad47d9c083191f588f0f.tar.gz
make --source and -m play nice together
Diffstat (limited to 'tests/test_files.py')
-rw-r--r--tests/test_files.py62
1 files changed, 61 insertions, 1 deletions
diff --git a/tests/test_files.py b/tests/test_files.py
index 648c76a..d72788c 100644
--- a/tests/test_files.py
+++ b/tests/test_files.py
@@ -2,7 +2,9 @@
import os, os.path
-from coverage.files import FileLocator, TreeMatcher, FnmatchMatcher
+from coverage.files import (
+ FileLocator, TreeMatcher, FnmatchMatcher, ModuleMatcher
+)
from coverage.files import PathAliases, find_python_files, abs_file
from coverage.misc import CoverageException
@@ -80,6 +82,64 @@ class MatcherTest(CoverageTest):
for filepath, matches in matches_to_try:
self.assertMatches(tm, filepath, matches)
+ def test_module_matcher(self):
+ matches_to_try = [
+ ('test', True),
+ ('test', True),
+ ('trash', False),
+ ('testing', False),
+ ('test.x', True),
+ ('test.x.y.z', True),
+ ('py', False),
+ ('py.t', False),
+ ('py.test', True),
+ ('py.testing', False),
+ ('py.test.buz', True),
+ ('py.test.buz.baz', True),
+ ('__main__', False),
+ ('mymain', True),
+ ('yourmain', False),
+ ]
+ modules = ['test', 'py.test', 'mymain']
+ for mm in (
+ ModuleMatcher(modules),
+ ModuleMatcher(modules, main_module=None),
+ ModuleMatcher(modules, main_module='yourmain'),
+ ):
+ self.assertEqual(
+ mm.info(),
+ ['main_module=%r' % mm.main_module] + modules
+ )
+ for modulename, matches in matches_to_try:
+ self.assertEqual(
+ mm.match(modulename),
+ modulename if matches else False,
+ modulename,
+ )
+
+ def test_module_matcher_dunder_main(self):
+ matches_to_try = [
+ ('__main__', True),
+ ('mymain', True),
+ ('yourmain', False),
+ ]
+ modules = ['test', 'py.test', 'mymain']
+ mm = ModuleMatcher(modules, main_module='mymain')
+ self.assertEqual(mm.info(), ["main_module='mymain'"] + modules)
+ for modulename, matches in matches_to_try:
+ if not matches:
+ expected = False
+ elif modulename == '__main__':
+ expected = mm.main_module
+ else:
+ expected = modulename
+
+ self.assertEqual(
+ mm.match(modulename),
+ expected,
+ modulename,
+ )
+
def test_fnmatch_matcher(self):
matches_to_try = [
(self.make_file("sub/file1.py"), True),