summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <nedbat@gmail.com>2015-04-24 21:06:26 -0400
committerNed Batchelder <nedbat@gmail.com>2015-04-24 21:06:26 -0400
commitb13338b0b62f3dde9bd757e9be00f820f1cf38ee (patch)
treedea89613b6719d984e02f005020fc037a09c94b2
parent487a14d375d30a75927051b38fdd211c12910311 (diff)
parent0d454947d16f790c7566c09666973dadf538ec20 (diff)
downloadpython-coveragepy-git-b13338b0b62f3dde9bd757e9be00f820f1cf38ee.tar.gz
Merged in lep/coverage.py (pull request #48)
Fix #363: crash when annotating non-ascii characters in python 2.
-rw-r--r--coverage/annotate.py5
-rw-r--r--tests/farm/annotate/gold_encogings/utf8.py,cover4
-rw-r--r--tests/farm/annotate/run_encodings.py7
-rw-r--r--tests/farm/annotate/src/utf8.py4
4 files changed, 20 insertions, 0 deletions
diff --git a/coverage/annotate.py b/coverage/annotate.py
index b77df4ec..6e68d4a3 100644
--- a/coverage/annotate.py
+++ b/coverage/annotate.py
@@ -2,6 +2,7 @@
import os, re
+from coverage import env
from coverage.report import Reporter
class AnnotateReporter(Reporter):
@@ -89,4 +90,8 @@ class AnnotateReporter(Reporter):
dest.write('> ')
else:
dest.write('! ')
+
+ if env.PY2:
+ line = line.encode('utf-8')
+
dest.write(line)
diff --git a/tests/farm/annotate/gold_encogings/utf8.py,cover b/tests/farm/annotate/gold_encogings/utf8.py,cover
new file mode 100644
index 00000000..6dbf7e0d
--- /dev/null
+++ b/tests/farm/annotate/gold_encogings/utf8.py,cover
@@ -0,0 +1,4 @@
+ # -*- coding: utf-8 -*-
+ # This comment has an accent: é
+
+> print("spam eggs")
diff --git a/tests/farm/annotate/run_encodings.py b/tests/farm/annotate/run_encodings.py
new file mode 100644
index 00000000..eb1a3a9a
--- /dev/null
+++ b/tests/farm/annotate/run_encodings.py
@@ -0,0 +1,7 @@
+copy("src", "out")
+run("""
+ coverage run utf8.py
+ coverage annotate utf8.py
+ """, rundir="out")
+compare("out", "gold_encodings", "*,cover")
+clean("out")
diff --git a/tests/farm/annotate/src/utf8.py b/tests/farm/annotate/src/utf8.py
new file mode 100644
index 00000000..27342d87
--- /dev/null
+++ b/tests/farm/annotate/src/utf8.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+# This comment has an accent: é
+
+print("spam eggs")