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

Reply via email to