Merge lp:~benji/launchpad/bug-996729 into lp:launchpad

Proposed by Benji York
Status: Merged
Approved by: Gary Poster
Approved revision: no longer in the source branch.
Merged at revision: 15400
Proposed branch: lp:~benji/launchpad/bug-996729
Merge into: lp:launchpad
Diff against target: 93 lines (+17/-9)
2 files modified
lib/lp/services/tests/test_stacktrace.py (+8/-4)
versions.cfg (+9/-5)
To merge this branch: bzr merge lp:~benji/launchpad/bug-996729
Reviewer Review Type Date Requested Status
Gary Poster (community) Approve
Review via email: mp+109732@code.launchpad.net

Commit message

Use the p9 version of our zope.testing fork which squelches output to stdout (and sometimes stderr) when subunit output is requested so as not to corrupt it.

Description of the change

When generating subunit output any tests that write to stdout or stderr will corrupt the subunit stream. This branch uses the p9 version of our zope.testing fork which squelches output to stdout (and sometimes stderr) when subunit output is requested.

To post a comment you must log in.
Revision history for this message
Gary Poster (gary) wrote :

Yay! Thank you.

On IRC we discussed a small change to the version.cfg comments to gather the zope.testing build instructions into one place.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/lp/services/tests/test_stacktrace.py'
2--- lib/lp/services/tests/test_stacktrace.py 2012-01-01 02:58:52 +0000
3+++ lib/lp/services/tests/test_stacktrace.py 2012-06-11 21:00:28 +0000
4@@ -148,6 +148,7 @@
5 def test_get_frame_data_supplement_bad_getInfo_with_traceback(self):
6 def boo_hiss():
7 raise ValueError()
8+ original_stderr = sys.__stderr__
9 stderr = sys.stderr = StringIO.StringIO()
10 self.assertFalse(stacktrace.DEBUG_EXCEPTION_FORMATTER)
11 stacktrace.DEBUG_EXCEPTION_FORMATTER = True
12@@ -157,7 +158,7 @@
13 get_frame(supplement=dict(getInfo=boo_hiss)),
14 MY_LINE_NUMBER))
15 finally:
16- sys.stderr = sys.__stderr__
17+ sys.stderr = original_stderr
18 stacktrace.DEBUG_EXCEPTION_FORMATTER = False
19 self.assertEqual(
20 dict(source_url=None, line=None, column=None, expression=None,
21@@ -275,24 +276,26 @@
22 def test_format_list_extra_errors(self):
23 extracted = stacktrace.extract_stack(get_frame(supplement=dict()))
24 extracted[-1][-2]['warnings'] = object() # This should never happen.
25+ original_stderr = sys.__stderr__
26 stderr = sys.stderr = StringIO.StringIO()
27 self.assertFalse(stacktrace.DEBUG_EXCEPTION_FORMATTER)
28 stacktrace.DEBUG_EXCEPTION_FORMATTER = True
29 try:
30 formatted = stacktrace.format_list(extracted)
31 finally:
32- sys.stderr = sys.__stderr__
33+ sys.stderr = original_stderr
34 stacktrace.DEBUG_EXCEPTION_FORMATTER = False
35 self.assertStartsWith(stderr.getvalue(), 'Traceback (most recent')
36 self.assertEndsWith(formatted[-1], ' return sys._getframe()\n')
37
38 def test_print_list_default(self):
39 extracted = stacktrace.extract_stack(get_frame())
40+ original_stderr = sys.__stderr__
41 stderr = sys.stderr = StringIO.StringIO()
42 try:
43 stacktrace.print_list(extracted)
44 finally:
45- sys.stderr = sys.__stderr__
46+ sys.stderr = original_stderr
47 self.assertEndsWith(stderr.getvalue(), 'return sys._getframe()\n')
48
49 def test_print_list_file(self):
50@@ -302,11 +305,12 @@
51 self.assertEndsWith(f.getvalue(), 'return sys._getframe()\n')
52
53 def test_print_stack_default(self):
54+ original_stderr = sys.__stderr__
55 stderr = sys.stderr = StringIO.StringIO()
56 try:
57 stacktrace.print_stack()
58 finally:
59- sys.stderr = sys.__stderr__
60+ sys.stderr = original_stderr
61 self.assertEndsWith(stderr.getvalue(), 'stacktrace.print_stack()\n')
62
63 def test_print_stack_options(self):
64
65=== modified file 'versions.cfg'
66--- versions.cfg 2012-06-07 15:31:26 +0000
67+++ versions.cfg 2012-06-11 21:00:28 +0000
68@@ -290,16 +290,20 @@
69 zope.testbrowser = 3.7.0a1
70 # p1 Build of lp:~mars/zope.testing/3.9.4-p1. Fixes bugs 570380 and 587886.
71 # p2 With patch for thread leaks to make them skips, fixes windmill errors
72-# with 'new threads' in hudson/ec2 builds.
73+# with 'new threads' in hudson/ec2 builds.
74 # p3 And always tear down layers, because thats the Right Thing To Do.
75 # p4 fixes --subunit --list to really just list the tests.
76 # p5 Build of lp:~launchpad/zope.testing/3.9.4-p5. Fixes bug #609986.
77 # p6 reinstates fix from p4. Build of lp:~launchpad/zope.testing/3.9.4-fork
78-# revision 26. To build, use python 2.6, not 2.7.
79-# Run "python bootstrap.py; ./bin/buildout".
80+# revision 26.
81+# p7 was unused
82+# p8 redirects stdout and stderr to a black hole device when --subunit is used
83+# p9 adds the redirection of __stderr__ to a black hole device
84+# To build (use Python 2.6) run "python bootstrap.py; ./bin/buildout". Then to
85+# build the distribution run "bin/buildout setup . sdist"
86 # Make sure you have subunit installed. When running tests, be aware that
87-# three will fail initially, per http://pastebin.ubuntu.com/913757/ .
88-zope.testing = 3.9.4-p6
89+# three will fail initially, per http://pastebin.ubuntu.com/913757/.
90+zope.testing = 3.9.4-p9
91 zope.thread = 3.4
92 zope.traversing = 3.8.0
93 zope.viewlet = 3.6.1