diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2015-08-11 10:47:12 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2015-08-11 10:47:12 -0400 |
commit | 3372864a37985176d216e508c2807e0d4b7b717a (patch) | |
tree | e43519b41b7daf7c144d6ef1628b924b819158ea /coverage/plugin.py | |
parent | 43e24381c30e711025a57de31ebf9ee91a444d8b (diff) | |
download | python-coveragepy-3372864a37985176d216e508c2807e0d4b7b717a.tar.gz |
Make sure source_token_lines always returns Unicode strings for the token text.
Diffstat (limited to 'coverage/plugin.py')
-rw-r--r-- | coverage/plugin.py | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/coverage/plugin.py b/coverage/plugin.py index 5d61e7f..b88f2df 100644 --- a/coverage/plugin.py +++ b/coverage/plugin.py @@ -4,7 +4,7 @@ """Plugin interfaces for coverage.py""" from coverage import files -from coverage.misc import _needs_to_implement +from coverage.misc import contract, _needs_to_implement class CoveragePlugin(object): @@ -182,26 +182,27 @@ class FileReporter(object): def excluded_lines(self): return set() + def arcs(self): + return [] + + def no_branch_lines(self): + return set() + def translate_lines(self, lines): return set(lines) def translate_arcs(self, arcs): return arcs - def no_branch_lines(self): - return set() - def exit_counts(self): return {} - def arcs(self): - return [] - + @contract(returns='unicode') def source(self): """Return the source for the code, a Unicode string.""" # A generic implementation: read the text of self.filename - with open(self.filename) as f: - return f.read() + with open(self.filename, "rb") as f: + return f.read().decode("utf8") def source_token_lines(self): """Generate a series of tokenized lines, one for each line in `source`. |