summaryrefslogtreecommitdiff
path: root/coverage/parser.py
diff options
context:
space:
mode:
authorJulian Berman <Julian+Hg@GrayVines.com>2012-07-31 10:17:00 -0400
committerJulian Berman <Julian+Hg@GrayVines.com>2012-07-31 10:17:00 -0400
commite4671e4ba2dd74204abd6a41ddb411f786c484cd (patch)
tree3eb1ea75877e62a97f2190e206b1d9b2be3edef6 /coverage/parser.py
parent4b84b6b6035f7bdc44af395615f096419d5a5219 (diff)
downloadpython-coveragepy-e4671e4ba2dd74204abd6a41ddb411f786c484cd.tar.gz
Don't report coverage for non-Python source files even if __file__ says they were executed.
Closes #82
Diffstat (limited to 'coverage/parser.py')
-rw-r--r--coverage/parser.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/coverage/parser.py b/coverage/parser.py
index f868d35..a9cceb3 100644
--- a/coverage/parser.py
+++ b/coverage/parser.py
@@ -203,7 +203,16 @@ class CodeParser(object):
statements.
"""
- self._raw_parse()
+
+ try:
+ self._raw_parse()
+ except tokenize.TokenError:
+ _, tokerr, _ = sys.exc_info()
+ msg, lineno = tokerr.args
+ raise NotPython(
+ "Couldn't parse '%s' as Python source: '%s' at %s" %
+ (self.filename, msg, lineno)
+ )
excluded_lines = self.first_lines(self.excluded)
ignore = excluded_lines + list(self.docstrings)