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): |     def _opentestcase(self, report): | ||||||
|         node = report.item  |         node = report.item  | ||||||
|         d = {'time': self._durations.pop(report.item, "0")} |         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['classname'] = ".".join(names[:-1]) | ||||||
|         d['name'] = names[-1] |         d['name'] = names[-1] | ||||||
|         attrs = ['%s="%s"' % item for item in sorted(d.items())] |         attrs = ['%s="%s"' % item for item in sorted(d.items())] | ||||||
|  | @ -61,7 +61,7 @@ class LogXML(object): | ||||||
|     def _opentestcase_collectfailure(self, report): |     def _opentestcase_collectfailure(self, report): | ||||||
|         node = report.collector |         node = report.collector | ||||||
|         d = {'time': '???'} |         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['classname'] = ".".join(names[:-1]) | ||||||
|         d['name'] = names[-1] |         d['name'] = names[-1] | ||||||
|         attrs = ['%s="%s"' % item for item in sorted(d.items())] |         attrs = ['%s="%s"' % item for item in sorted(d.items())] | ||||||
|  |  | ||||||
|  | @ -49,6 +49,21 @@ class TestPython: | ||||||
|         assert_attr(fnode, message="test setup failure") |         assert_attr(fnode, message="test setup failure") | ||||||
|         assert "ValueError" in fnode.toxml() |         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): |     def test_internal_error(self, testdir): | ||||||
|         testdir.makeconftest("def pytest_runtest_protocol(): 0 / 0") |         testdir.makeconftest("def pytest_runtest_protocol(): 0 / 0") | ||||||
|         testdir.makepyfile("def test_function(): pass") |         testdir.makepyfile("def test_function(): pass") | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue