From d6010aa0c9a9ff6984fbc4900c6110efa5ab32dd Mon Sep 17 00:00:00 2001 From: WooParadog Date: Wed, 23 Apr 2014 14:50:21 +0800 Subject: [PATCH 1/3] Also replace `report.longrepr` with `bin_xml_escape`ed skipreason --- _pytest/junitxml.py | 1 + 1 file changed, 1 insertion(+) diff --git a/_pytest/junitxml.py b/_pytest/junitxml.py index c87e7f34f..7ad28cdfa 100644 --- a/_pytest/junitxml.py +++ b/_pytest/junitxml.py @@ -162,6 +162,7 @@ class LogXML(object): filename, lineno, skipreason = report.longrepr if skipreason.startswith("Skipped: "): skipreason = bin_xml_escape(skipreason[9:]) + report.longrepr = filename, lineno, skipreason self.append( Junit.skipped("%s:%s: %s" % report.longrepr, type="pytest.skip", From 580c8525f0c1cec29d0b4fc5943e476af9c33863 Mon Sep 17 00:00:00 2001 From: WooParadog Date: Wed, 23 Apr 2014 15:38:40 +0800 Subject: [PATCH 2/3] Use processced skipreason for generating skip Junit node --- _pytest/junitxml.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/_pytest/junitxml.py b/_pytest/junitxml.py index 7ad28cdfa..bc4c72590 100644 --- a/_pytest/junitxml.py +++ b/_pytest/junitxml.py @@ -162,9 +162,8 @@ class LogXML(object): filename, lineno, skipreason = report.longrepr if skipreason.startswith("Skipped: "): skipreason = bin_xml_escape(skipreason[9:]) - report.longrepr = filename, lineno, skipreason self.append( - Junit.skipped("%s:%s: %s" % report.longrepr, + Junit.skipped("%s:%s: %s" % (filename, lineno, skipreason), type="pytest.skip", message=skipreason )) From 0567a8ee77798787f9aaa68db31894c000eb0406 Mon Sep 17 00:00:00 2001 From: WooParadog Date: Thu, 24 Apr 2014 10:45:39 +0800 Subject: [PATCH 3/3] Add test for skipped case with utf-8 message --- testing/test_junitxml.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/testing/test_junitxml.py b/testing/test_junitxml.py index 965c444bf..2c59d04e0 100644 --- a/testing/test_junitxml.py +++ b/testing/test_junitxml.py @@ -494,6 +494,8 @@ def test_unicode_issue368(testdir): log.append_error(report) report.longrepr = "filename", 1, ustr log.append_skipped(report) + report.longrepr = "filename", 1, "Skipped: 卡嘣嘣" + log.append_skipped(report) report.wasxfail = ustr log.append_skipped(report) log.pytest_sessionfinish()