summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeonardo Pistone <lpistone@gmail.com>2015-04-14 20:11:12 +0200
committerLeonardo Pistone <lpistone@gmail.com>2015-04-14 20:11:12 +0200
commit0ebd4f0ebab9620a6fc74cb4c0d337ba2c2d8916 (patch)
tree6e92b3c411ccb5c1b4bbf3574373d8e86b6b510f
parente0ad5837194a4a8cd1a2ddf392c5b0db6a80e705 (diff)
downloadpython-coveragepy-git-0ebd4f0ebab9620a6fc74cb4c0d337ba2c2d8916.tar.gz
Fix #363: crash when annotating non-ascii characters in python 2.
--HG-- extra : amend_source : 8297268531b6014e4f2c2a445385f89688a3fb93
-rw-r--r--coverage/annotate.py5
-rw-r--r--tests/farm/annotate/run_encodings.py7
-rw-r--r--tests/farm/annotate/src/utf8.py4
3 files changed, 16 insertions, 0 deletions
diff --git a/coverage/annotate.py b/coverage/annotate.py
index 3487feb6..d4bbeb3d 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/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")