summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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")