Merge lp:~garyvdm/pyjunitxml/consistant_test_ids into lp:pyjunitxml

Proposed by Gary van der Merwe
Status: Needs review
Proposed branch: lp:~garyvdm/pyjunitxml/consistant_test_ids
Merge into: lp:pyjunitxml
Diff against target: 130 lines (+22/-14)
1 file modified
junitxml/tests/test_junitxml.py (+22/-14)
To merge this branch: bzr merge lp:~garyvdm/pyjunitxml/consistant_test_ids
Reviewer Review Type Date Requested Status
Robert Collins Needs Fixing
Martin Packman Needs Information
Review via email: mp+291497@code.launchpad.net

Description of the change

This fixes Bug #1491635.

I makes the test tests use a implementation of TestCase.id that is consistent across different python versions.

To post a comment you must log in.
Revision history for this message
Gary van der Merwe (garyvdm) wrote :

Sorry. I pushed using git-remote-bzr has not maintained commit ids. I will repush using bzr.

28. By Gary van der Merwe

For TestJUnitXmlResult use a TestCase.id implementation that is consistant accross different python versions.

Revision history for this message
Martin Packman (gz) wrote :

See inline comments.

review: Needs Information
Revision history for this message
Robert Collins (lifeless) :
review: Needs Fixing
Revision history for this message
Robert Collins (lifeless) wrote :

ping

Unmerged revisions

28. By Gary van der Merwe

For TestJUnitXmlResult use a TestCase.id implementation that is consistant accross different python versions.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'junitxml/tests/test_junitxml.py'
--- junitxml/tests/test_junitxml.py 2011-12-07 16:54:18 +0000
+++ junitxml/tests/test_junitxml.py 2016-04-11 12:04:25 +0000
@@ -32,6 +32,14 @@
32 def test_with_stream(self):32 def test_with_stream(self):
33 result = junitxml.JUnitXmlResult(StringIO())33 result = junitxml.JUnitXmlResult(StringIO())
3434
35class ConsistantIdTestCase(unittest.TestCase):
36 """TestCase who's id is consistant accross python 2 & 3.
37
38 This is to fix https://bugs.launchpad.net/pyjunitxml/+bug/1491635
39 """
40
41 def id(self):
42 return "%s.%s" % (self.__class__.__name__, self._testMethodName)
3543
36class TestJUnitXmlResult(unittest.TestCase):44class TestJUnitXmlResult(unittest.TestCase):
3745
@@ -109,47 +117,47 @@
109 self.assertTrue('Passes" name="test_me(version_1.6)"' in output)117 self.assertTrue('Passes" name="test_me(version_1.6)"' in output)
110118
111 def test_erroring_test(self):119 def test_erroring_test(self):
112 class Errors(unittest.TestCase):120 class Errors(ConsistantIdTestCase):
113 def test_me(self):121 def test_me(self):
114 1/0122 1/0
115 self.result.startTestRun()123 self.result.startTestRun()
116 Errors("test_me").run(self.result)124 Errors("test_me").run(self.result)
117 self.result.stopTestRun()125 self.result.stopTestRun()
118 self.assertEqual("""<testsuite errors="1" failures="0" name="" tests="1" time="0.000">126 self.assertEqual("""<testsuite errors="1" failures="0" name="" tests="1" time="0.000">
119<testcase classname="junitxml.tests.test_junitxml.Errors" name="test_me" time="0.000">127<testcase classname="Errors" name="test_me" time="0.000">
120<error type="ZeroDivisionError">error</error>128<error type="ZeroDivisionError">error</error>
121</testcase>129</testcase>
122</testsuite>130</testsuite>
123""", self.get_output())131""", self.get_output())
124132
125 def test_failing_test(self):133 def test_failing_test(self):
126 class Fails(unittest.TestCase):134 class Fails(ConsistantIdTestCase):
127 def test_me(self):135 def test_me(self):
128 self.fail()136 self.fail()
129 self.result.startTestRun()137 self.result.startTestRun()
130 Fails("test_me").run(self.result)138 Fails("test_me").run(self.result)
131 self.result.stopTestRun()139 self.result.stopTestRun()
132 self.assertEqual("""<testsuite errors="0" failures="1" name="" tests="1" time="0.000">140 self.assertEqual("""<testsuite errors="0" failures="1" name="" tests="1" time="0.000">
133<testcase classname="junitxml.tests.test_junitxml.Fails" name="test_me" time="0.000">141<testcase classname="Fails" name="test_me" time="0.000">
134<failure type="AssertionError">failure</failure>142<failure type="AssertionError">failure</failure>
135</testcase>143</testcase>
136</testsuite>144</testsuite>
137""", self.get_output())145""", self.get_output())
138146
139 def test_successful_test(self):147 def test_successful_test(self):
140 class Passes(unittest.TestCase):148 class Passes(ConsistantIdTestCase):
141 def test_me(self):149 def test_me(self):
142 pass150 pass
143 self.result.startTestRun()151 self.result.startTestRun()
144 Passes("test_me").run(self.result)152 Passes("test_me").run(self.result)
145 self.result.stopTestRun()153 self.result.stopTestRun()
146 self.assertEqual("""<testsuite errors="0" failures="0" name="" tests="1" time="0.000">154 self.assertEqual("""<testsuite errors="0" failures="0" name="" tests="1" time="0.000">
147<testcase classname="junitxml.tests.test_junitxml.Passes" name="test_me" time="0.000"/>155<testcase classname="Passes" name="test_me" time="0.000"/>
148</testsuite>156</testsuite>
149""", self.get_output())157""", self.get_output())
150158
151 def test_skip_test(self):159 def test_skip_test(self):
152 class Skips(unittest.TestCase):160 class Skips(ConsistantIdTestCase):
153 def test_me(self):161 def test_me(self):
154 self.skipTest("yo")162 self.skipTest("yo")
155 self.result.startTestRun()163 self.result.startTestRun()
@@ -158,7 +166,7 @@
158 self.result.stopTestRun()166 self.result.stopTestRun()
159 output = self.get_output()167 output = self.get_output()
160 expected = """<testsuite errors="0" failures="0" name="" tests="1" time="0.000">168 expected = """<testsuite errors="0" failures="0" name="" tests="1" time="0.000">
161<testcase classname="junitxml.tests.test_junitxml.Skips" name="test_me" time="0.000">169<testcase classname="Skips" name="test_me" time="0.000">
162<skipped>yo</skipped>170<skipped>yo</skipped>
163</testcase>171</testcase>
164</testsuite>172</testsuite>
@@ -166,7 +174,7 @@
166 self.assertEqual(expected, output)174 self.assertEqual(expected, output)
167175
168 def test_unexpected_success_test(self):176 def test_unexpected_success_test(self):
169 class Succeeds(unittest.TestCase):177 class Succeeds(ConsistantIdTestCase):
170 def test_me(self):178 def test_me(self):
171 pass179 pass
172 try:180 try:
@@ -178,13 +186,13 @@
178 self.result.stopTestRun()186 self.result.stopTestRun()
179 output = self.get_output()187 output = self.get_output()
180 expected = """<testsuite errors="0" failures="1" name="" tests="1" time="0.000">188 expected = """<testsuite errors="0" failures="1" name="" tests="1" time="0.000">
181<testcase classname="junitxml.tests.test_junitxml.Succeeds" name="test_me" time="0.000">189<testcase classname="Succeeds" name="test_me" time="0.000">
182<failure type="unittest.case._UnexpectedSuccess"/>190<failure type="unittest.case._UnexpectedSuccess"/>
183</testcase>191</testcase>
184</testsuite>192</testsuite>
185"""193"""
186 expected_old = """<testsuite errors="0" failures="0" name="" tests="1" time="0.000">194 expected_old = """<testsuite errors="0" failures="0" name="" tests="1" time="0.000">
187<testcase classname="junitxml.tests.test_junitxml.Succeeds" name="test_me" time="0.000"/>195<testcase classname="Succeeds" name="test_me" time="0.000"/>
188</testsuite>196</testsuite>
189"""197"""
190 if output != expected_old:198 if output != expected_old:
@@ -192,7 +200,7 @@
192200
193 def test_expected_failure_test(self):201 def test_expected_failure_test(self):
194 expected_failure_support = [True]202 expected_failure_support = [True]
195 class ExpectedFail(unittest.TestCase):203 class ExpectedFail(ConsistantIdTestCase):
196 def test_me(self):204 def test_me(self):
197 self.fail("fail")205 self.fail("fail")
198 try:206 try:
@@ -205,11 +213,11 @@
205 self.result.stopTestRun()213 self.result.stopTestRun()
206 output = self.get_output()214 output = self.get_output()
207 expected = """<testsuite errors="0" failures="0" name="" tests="1" time="0.000">215 expected = """<testsuite errors="0" failures="0" name="" tests="1" time="0.000">
208<testcase classname="junitxml.tests.test_junitxml.ExpectedFail" name="test_me" time="0.000"/>216<testcase classname="ExpectedFail" name="test_me" time="0.000"/>
209</testsuite>217</testsuite>
210"""218"""
211 expected_old = """<testsuite errors="0" failures="1" name="" tests="1" time="0.000">219 expected_old = """<testsuite errors="0" failures="1" name="" tests="1" time="0.000">
212<testcase classname="junitxml.tests.test_junitxml.ExpectedFail" name="test_me" time="0.000">220<testcase classname="ExpectedFail" name="test_me" time="0.000">
213<failure type="AssertionError">failure</failure>221<failure type="AssertionError">failure</failure>
214</testcase>222</testcase>
215</testsuite>223</testsuite>

Subscribers

People subscribed via source and target branches