refine classname normalization for junit-xml
--HG-- branch : trunk
This commit is contained in:
		
							parent
							
								
									3296939eda
								
							
						
					
					
						commit
						8d9e0712be
					
				|  | @ -35,7 +35,7 @@ class LogXML(object): | |||
|     def _opentestcase(self, report): | ||||
|         node = report.item  | ||||
|         d = {'time': self._durations.pop(report.item, "0")} | ||||
|         names = [x.replace(".py", "") for x in node.listnames()] | ||||
|         names = [x.replace(".py", "") for x in node.listnames() if x != "()"] | ||||
|         d['classname'] = ".".join(names[:-1]) | ||||
|         d['name'] = names[-1] | ||||
|         attrs = ['%s="%s"' % item for item in sorted(d.items())] | ||||
|  | @ -61,7 +61,7 @@ class LogXML(object): | |||
|     def _opentestcase_collectfailure(self, report): | ||||
|         node = report.collector | ||||
|         d = {'time': '???'} | ||||
|         names = [x.replace(".py", "") for x in node.listnames()] | ||||
|         names = [x.replace(".py", "") for x in node.listnames() if x != "()"] | ||||
|         d['classname'] = ".".join(names[:-1]) | ||||
|         d['name'] = names[-1] | ||||
|         attrs = ['%s="%s"' % item for item in sorted(d.items())] | ||||
|  |  | |||
|  | @ -49,6 +49,21 @@ class TestPython: | |||
|         assert_attr(fnode, message="test setup failure") | ||||
|         assert "ValueError" in fnode.toxml() | ||||
| 
 | ||||
|     def test_classname_instance(self, testdir): | ||||
|         testdir.makepyfile(""" | ||||
|             class TestClass: | ||||
|                 def test_method(self): | ||||
|                     assert 0 | ||||
|         """) | ||||
|         result, dom = runandparse(testdir) | ||||
|         assert result.ret  | ||||
|         node = dom.getElementsByTagName("testsuite")[0] | ||||
|         assert_attr(node, failures=1) | ||||
|         tnode = node.getElementsByTagName("testcase")[0] | ||||
|         assert_attr(tnode,  | ||||
|             classname="test_classname_instance.test_classname_instance.TestClass", | ||||
|             name="test_method") | ||||
| 
 | ||||
|     def test_internal_error(self, testdir): | ||||
|         testdir.makeconftest("def pytest_runtest_protocol(): 0 / 0") | ||||
|         testdir.makepyfile("def test_function(): pass") | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue