4 new commits in pytest: https://bitbucket.org/hpk42/pytest/commits/ea7c9699dc47/ Changeset: ea7c9699dc47 User: jaapz Date: 2013-05-08 15:15:43 Summary: Fix junitxml generation when using special characters in parametrized tests. Affected #: 2 files
diff -r 17f3904c6e8e7c55575ac20dcf06e90124f17842 -r ea7c9699dc473a5aa8d875f5b948f02185bc785a _pytest/junitxml.py --- a/_pytest/junitxml.py +++ b/_pytest/junitxml.py @@ -36,7 +36,8 @@ # | [#x10000-#x10FFFF] _legal_chars = (0x09, 0x0A, 0x0d) _legal_ranges = ( - (0x20, 0xD7FF), + (0x20, 0x7E), + (0x80, 0xD7FF), (0xE000, 0xFFFD), (0x10000, 0x10FFFF), ) @@ -103,7 +104,7 @@ classnames.insert(0, self.prefix) self.tests.append(Junit.testcase( classname=".".join(classnames), - name=names[-1], + name=bin_xml_escape(names[-1]), time=getattr(report, 'duration', 0) )) https://bitbucket.org/hpk42/pytest/commits/e91ec1fd68ec/ Changeset: e91ec1fd68ec User: jaapz Date: 2013-05-08 16:11:55 Summary: Fix pytest.py permissions. Affected #: 1 file https://bitbucket.org/hpk42/pytest/commits/c1547d89c7fe/ Changeset: c1547d89c7fe User: jaapz Date: 2013-05-09 21:16:57 Summary: Implemented a test for xml control character fail. Affected #: 1 file diff -r e91ec1fd68ec9252537442c6d2cd1e75c6212112 -r c1547d89c7fe3c319286b06e6f33c4f229368186 testing/test_junitxml.py --- a/testing/test_junitxml.py +++ b/testing/test_junitxml.py @@ -450,3 +450,16 @@ assert result.ret == 0 assert testdir.tmpdir.join("a/x.xml").check() +def test_escaped_parametrized_names_xml(testdir): + testdir.makepyfile(""" + import pytest + @pytest.mark.parametrize('char', ["\\x00"]) + def test_func(char): + assert char + """) + result, dom = runandparse(testdir) + assert result.ret == 0 + node = dom.getElementsByTagName("testcase")[0] + assert_attr(node, + name="test_func[#x00]") + https://bitbucket.org/hpk42/pytest/commits/1a0e829d03d9/ Changeset: 1a0e829d03d9 User: hpk42 Date: 2013-05-10 08:06:31 Summary: Merged in jaapz/pytest-xml-escape-control-chars (pull request #32) Fix junitxml generation when using special characters in parametrized tests. Affected #: 2 files diff -r fb4c4834bcf6c95238b608ea2304a53caea3eb9d -r 1a0e829d03d9fd537b7be24bb86a2c7eeee532a7 _pytest/junitxml.py --- a/_pytest/junitxml.py +++ b/_pytest/junitxml.py @@ -36,7 +36,8 @@ # | [#x10000-#x10FFFF] _legal_chars = (0x09, 0x0A, 0x0d) _legal_ranges = ( - (0x20, 0xD7FF), + (0x20, 0x7E), + (0x80, 0xD7FF), (0xE000, 0xFFFD), (0x10000, 0x10FFFF), ) @@ -103,7 +104,7 @@ classnames.insert(0, self.prefix) self.tests.append(Junit.testcase( classname=".".join(classnames), - name=names[-1], + name=bin_xml_escape(names[-1]), time=getattr(report, 'duration', 0) )) diff -r fb4c4834bcf6c95238b608ea2304a53caea3eb9d -r 1a0e829d03d9fd537b7be24bb86a2c7eeee532a7 testing/test_junitxml.py --- a/testing/test_junitxml.py +++ b/testing/test_junitxml.py @@ -450,3 +450,16 @@ assert result.ret == 0 assert testdir.tmpdir.join("a/x.xml").check() +def test_escaped_parametrized_names_xml(testdir): + testdir.makepyfile(""" + import pytest + @pytest.mark.parametrize('char', ["\\x00"]) + def test_func(char): + assert char + """) + result, dom = runandparse(testdir) + assert result.ret == 0 + node = dom.getElementsByTagName("testcase")[0] + assert_attr(node, + name="test_func[#x00]") + Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. _______________________________________________ pytest-commit mailing list pytest-commit@python.org http://mail.python.org/mailman/listinfo/pytest-commit