Index: junitxml-0.7/junitxml/tests/test_junitxml.py =================================================================== --- junitxml-0.7.orig/junitxml/tests/test_junitxml.py +++ junitxml-0.7/junitxml/tests/test_junitxml.py @@ -32,6 +32,14 @@ class TestJUnitXmlResult__init__(unittes def test_with_stream(self): result = junitxml.JUnitXmlResult(StringIO()) +class ConsistantIdTestCase(unittest.TestCase): + """TestCase who's id is consistant accross python 2 & 3. + + This is to fix https://bugs.launchpad.net/pyjunitxml/+bug/1491635 + """ + + def id(self): + return "%s.%s" % (self.__class__.__name__, self._testMethodName) class TestJUnitXmlResult(unittest.TestCase): @@ -47,16 +55,6 @@ class TestJUnitXmlResult(unittest.TestCa r'(?s).*?', r'error', re.sub(r'time="\d+\.\d+"', 'time="0.000"', output))) - def run_test_or_simulate(self, test, method_name, manual_method, - *manual_args): - if getattr(test, method_name, None): - test.run(self.result) - else: - # older python - manually execute - self.result.startTest(test) - manual_method(test, *manual_args) - self.result.stopTest(test) - def test_run_duration_handles_datestamping_in_the_past(self): # When used via subunit2junitxml, startTestRun is called before # any tz info in the test stream has been seen. @@ -109,64 +107,47 @@ class TestJUnitXmlResult(unittest.TestCa self.assertTrue('Passes" name="test_me(version_1.6)"' in output) def test_erroring_test(self): - class Errors(unittest.TestCase): + class Errors(ConsistantIdTestCase): def test_me(self): 1/0 self.result.startTestRun() Errors("test_me").run(self.result) self.result.stopTestRun() self.assertEqual(""" - + error """, self.get_output()) def test_failing_test(self): - class Fails(unittest.TestCase): + class Fails(ConsistantIdTestCase): def test_me(self): self.fail() self.result.startTestRun() Fails("test_me").run(self.result) self.result.stopTestRun() self.assertEqual(""" - + failure """, self.get_output()) def test_successful_test(self): - class Passes(unittest.TestCase): + class Passes(ConsistantIdTestCase): def test_me(self): pass self.result.startTestRun() Passes("test_me").run(self.result) self.result.stopTestRun() self.assertEqual(""" - + """, self.get_output()) - def test_skip_test(self): - class Skips(unittest.TestCase): - def test_me(self): - self.skipTest("yo") - self.result.startTestRun() - test = Skips("test_me") - self.run_test_or_simulate(test, 'skipTest', self.result.addSkip, 'yo') - self.result.stopTestRun() - output = self.get_output() - expected = """ - -yo - - -""" - self.assertEqual(expected, output) - def test_unexpected_success_test(self): - class Succeeds(unittest.TestCase): + class Succeeds(ConsistantIdTestCase): def test_me(self): pass try: @@ -178,13 +159,13 @@ class TestJUnitXmlResult(unittest.TestCa self.result.stopTestRun() output = self.get_output() expected = """ - + """ expected_old = """ - + """ if output != expected_old: @@ -192,7 +173,7 @@ class TestJUnitXmlResult(unittest.TestCa def test_expected_failure_test(self): expected_failure_support = [True] - class ExpectedFail(unittest.TestCase): + class ExpectedFail(ConsistantIdTestCase): def test_me(self): self.fail("fail") try: @@ -205,11 +186,11 @@ class TestJUnitXmlResult(unittest.TestCa self.result.stopTestRun() output = self.get_output() expected = """ - + """ expected_old = """ - + failure