Merge lp:~sidnei/zope.testing/flakes-and-feathers into lp:~vcs-imports/zope.testing/trunk

Proposed by Sidnei da Silva
Status: Merged
Merge reported by: Sidnei da Silva
Merged at revision: not available
Proposed branch: lp:~sidnei/zope.testing/flakes-and-feathers
Merge into: lp:~vcs-imports/zope.testing/trunk
Diff against target: 508 lines
28 files modified
CHANGES.txt (+3/-0)
src/zope/testing/doctest.py (+1/-1)
src/zope/testing/doctestunit.py (+0/-3)
src/zope/testing/testrunner/doctest.py (+2/-0)
src/zope/testing/testrunner/filter.py (+0/-1)
src/zope/testing/testrunner/garbagecollection.py (+2/-2)
src/zope/testing/testrunner/listing.py (+0/-1)
src/zope/testing/testrunner/logsupport.py (+0/-1)
src/zope/testing/testrunner/process.py (+0/-1)
src/zope/testing/testrunner/runner.py (+3/-3)
src/zope/testing/testrunner/selftest.py (+0/-1)
src/zope/testing/testrunner/tb_format.py (+0/-2)
src/zope/testing/testrunner/testrunner-errors.txt (+20/-0)
src/zope/testing/testrunner/testrunner-ex-pp-products/more/sampletests.py (+0/-1)
src/zope/testing/testrunner/testrunner-ex-pp-products/sampletests.py (+0/-1)
src/zope/testing/testrunner/testrunner-ex/gc0.py (+0/-1)
src/zope/testing/testrunner/testrunner-ex/gc1.py (+0/-1)
src/zope/testing/testrunner/testrunner-ex/gcset.py (+0/-1)
src/zope/testing/testrunner/testrunner-ex/gcstats.py (+0/-1)
src/zope/testing/testrunner/testrunner-ex/leak.py (+1/-1)
src/zope/testing/testrunner/testrunner-ex/pledge.py (+0/-1)
src/zope/testing/testrunner/testrunner-ex/sample2/sample21/sampletests_i.py (+1/-2)
src/zope/testing/testrunner/testrunner-ex/sample2/sample22/sampletests_i.py (+0/-1)
src/zope/testing/testrunner/testrunner-ex/sample2/sample23/sampletests_i.py (+0/-1)
src/zope/testing/testrunner/testrunner-ex/sample2/sampletests_f.py (+0/-1)
src/zope/testing/testrunner/testrunner-gc.txt (+19/-0)
src/zope/testing/testrunner/testrunner-layers-buff.txt (+93/-0)
src/zope/testing/tests.py (+1/-3)
To merge this branch: bzr merge lp:~sidnei/zope.testing/flakes-and-feathers
Reviewer Review Type Date Requested Status
Sidnei da Silva (community) Abstain
Gary Poster (community) Approve
Thomas Herve (community) Approve
Review via email: mp+13008@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Sidnei da Silva (sidnei) wrote :

- Fixed missing imports and undefined variables reported by pyflakes,
  adding tests to exercise the blind spots.

- Cleaned up unused imports reported by pyflakes.

Revision history for this message
Thomas Herve (therve) wrote :

Nice branch, +1!

review: Approve
Revision history for this message
Gary Poster (gary) wrote :

Very nice, Sidnei. Thank you.

Gary

review: Approve
Revision history for this message
Sidnei da Silva (sidnei) :
review: Abstain

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'CHANGES.txt'
2--- CHANGES.txt 2009-09-21 17:59:46 +0000
3+++ CHANGES.txt 2009-10-07 16:40:23 +0000
4@@ -4,7 +4,10 @@
5 3.8.4 (unreleased)
6 ==================
7
8+- Fixed missing imports and undefined variables reported by pyflakes,
9+ adding tests to exercise the blind spots.
10
11+- Cleaned up unused imports reported by pyflakes.
12
13 3.8.3 (2009-09-21)
14 ==================
15
16=== modified file 'src/zope/testing/doctest.py'
17--- src/zope/testing/doctest.py 2009-06-07 16:22:02 +0000
18+++ src/zope/testing/doctest.py 2009-10-07 16:40:23 +0000
19@@ -95,7 +95,7 @@
20
21 import __future__
22
23-import sys, traceback, inspect, linecache, os, re, types
24+import sys, traceback, inspect, linecache, os, re
25 import unittest, difflib, pdb, tempfile
26 import warnings
27 from StringIO import StringIO
28
29=== modified file 'src/zope/testing/doctestunit.py'
30--- src/zope/testing/doctestunit.py 2005-05-16 14:50:50 +0000
31+++ src/zope/testing/doctestunit.py 2009-10-07 16:40:23 +0000
32@@ -19,9 +19,6 @@
33 $Id: doctestunit.py 28304 2004-10-31 17:59:45Z jim $
34 """
35
36-from doctest import DocFileSuite, DocTestSuite
37-from doctest import debug_src, debug
38-
39 def pprint():
40 from pprint import PrettyPrinter
41 def pprint(ob, **opts):
42
43=== modified file 'src/zope/testing/testrunner/doctest.py'
44--- src/zope/testing/testrunner/doctest.py 2008-05-05 18:50:48 +0000
45+++ src/zope/testing/testrunner/doctest.py 2009-10-07 16:40:23 +0000
46@@ -16,6 +16,7 @@
47 $Id: __init__.py 86232 2008-05-03 15:09:33Z ctheune $
48 """
49
50+import sys
51 from zope.testing import doctest
52 import zope.testing.testrunner.feature
53
54@@ -26,6 +27,7 @@
55
56 def global_setup(self):
57 options = self.runner.options
58+ output = options.output
59
60 self.old_reporting_flags = doctest.set_unittest_reportflags(0)
61
62
63=== modified file 'src/zope/testing/testrunner/filter.py'
64--- src/zope/testing/testrunner/filter.py 2009-08-10 20:57:09 +0000
65+++ src/zope/testing/testrunner/filter.py 2009-10-07 16:40:23 +0000
66@@ -16,7 +16,6 @@
67 $Id: __init__.py 86218 2008-05-03 14:17:26Z ctheune $
68 """
69
70-import time
71 import zope.testing.testrunner.feature
72
73
74
75=== modified file 'src/zope/testing/testrunner/garbagecollection.py'
76--- src/zope/testing/testrunner/garbagecollection.py 2008-05-05 18:50:48 +0000
77+++ src/zope/testing/testrunner/garbagecollection.py 2009-10-07 16:40:23 +0000
78@@ -17,7 +17,7 @@
79 """
80
81 import gc
82-import time
83+import sys
84 import zope.testing.testrunner.feature
85
86
87@@ -32,7 +32,7 @@
88 return
89
90 if len(self.threshold) > 3:
91- output.error("Too many --gc options")
92+ self.runner.options.output.error("Too many --gc options")
93 sys.exit(1)
94
95 def global_setup(self):
96
97=== modified file 'src/zope/testing/testrunner/listing.py'
98--- src/zope/testing/testrunner/listing.py 2008-05-05 18:50:48 +0000
99+++ src/zope/testing/testrunner/listing.py 2009-10-07 16:40:23 +0000
100@@ -16,7 +16,6 @@
101 $Id: __init__.py 86218 2008-05-03 14:17:26Z ctheune $
102 """
103
104-import time
105 import zope.testing.testrunner.feature
106
107
108
109=== modified file 'src/zope/testing/testrunner/logsupport.py'
110--- src/zope/testing/testrunner/logsupport.py 2008-05-05 18:50:48 +0000
111+++ src/zope/testing/testrunner/logsupport.py 2009-10-07 16:40:23 +0000
112@@ -25,7 +25,6 @@
113 import logging.config
114 import os.path
115
116-from zope.testing import doctest
117 import zope.testing.testrunner.feature
118
119
120
121=== modified file 'src/zope/testing/testrunner/process.py'
122--- src/zope/testing/testrunner/process.py 2009-08-10 20:57:09 +0000
123+++ src/zope/testing/testrunner/process.py 2009-10-07 16:40:23 +0000
124@@ -17,7 +17,6 @@
125 """
126
127 import sys
128-import time
129 import zope.testing.testrunner.feature
130
131
132
133=== modified file 'src/zope/testing/testrunner/runner.py'
134--- src/zope/testing/testrunner/runner.py 2009-09-30 07:53:17 +0000
135+++ src/zope/testing/testrunner/runner.py 2009-10-07 16:40:23 +0000
136@@ -384,6 +384,8 @@
137 def spawn_layer_in_subprocess(result, script_parts, options, features,
138 layer_name, layer, failures, errors,
139 resume_number):
140+ output = options.output
141+
142 try:
143 # BBB
144 if script_parts is None:
145@@ -449,9 +451,7 @@
146 else:
147 break
148 else:
149- output = options.output
150- output.error_with_banner("Could not communicate with subprocess:\n"
151- "\n" + suberr)
152+ output.error_with_banner("Could not communicate with subprocess")
153
154 while nfail > 0:
155 nfail -= 1
156
157=== modified file 'src/zope/testing/testrunner/selftest.py'
158--- src/zope/testing/testrunner/selftest.py 2008-05-05 18:50:48 +0000
159+++ src/zope/testing/testrunner/selftest.py 2009-10-07 16:40:23 +0000
160@@ -19,7 +19,6 @@
161 """
162
163 import pdb
164-from zope.testing import doctest
165 import zope.testing.testrunner.feature
166
167 real_pdb_set_trace = pdb.set_trace
168
169=== modified file 'src/zope/testing/testrunner/tb_format.py'
170--- src/zope/testing/testrunner/tb_format.py 2009-07-14 18:39:43 +0000
171+++ src/zope/testing/testrunner/tb_format.py 2009-10-07 16:40:23 +0000
172@@ -16,8 +16,6 @@
173 $Id: __init__.py 68482 2006-06-04 14:58:55Z jim $
174 """
175
176-import StringIO
177-import os
178 import sys
179 import traceback
180 import zope.exceptions.exceptionformatter
181
182=== modified file 'src/zope/testing/testrunner/testrunner-errors.txt'
183--- src/zope/testing/testrunner/testrunner-errors.txt 2009-07-24 06:38:47 +0000
184+++ src/zope/testing/testrunner/testrunner-errors.txt 2009-10-07 16:40:23 +0000
185@@ -686,6 +686,26 @@
186 Tearing down left over layers:
187 Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
188
189+Specifying more than one diff option at once causes an error:
190+
191+ >>> sys.argv = 'test --tests-pattern ^pledge$ --cdiff --udiff'.split()
192+ >>> _ = testrunner.run_internal(defaults)
193+ Traceback (most recent call last):
194+ ...
195+ SystemExit: 1
196+
197+ >>> sys.argv = 'test --tests-pattern ^pledge$ --cdiff --ndiff'.split()
198+ >>> _ = testrunner.run_internal(defaults)
199+ Traceback (most recent call last):
200+ ...
201+ SystemExit: 1
202+
203+ >>> sys.argv = 'test --tests-pattern ^pledge$ --udiff --ndiff'.split()
204+ >>> _ = testrunner.run_internal(defaults)
205+ Traceback (most recent call last):
206+ ...
207+ SystemExit: 1
208+
209
210 Testing-Module Import Errors
211 ----------------------------
212
213=== modified file 'src/zope/testing/testrunner/testrunner-ex-pp-products/more/sampletests.py'
214--- src/zope/testing/testrunner/testrunner-ex-pp-products/more/sampletests.py 2008-05-05 18:50:48 +0000
215+++ src/zope/testing/testrunner/testrunner-ex-pp-products/more/sampletests.py 2009-10-07 16:40:23 +0000
216@@ -13,7 +13,6 @@
217 ##############################################################################
218
219 import unittest
220-from zope.testing import doctest
221
222 class Test(unittest.TestCase):
223
224
225=== modified file 'src/zope/testing/testrunner/testrunner-ex-pp-products/sampletests.py'
226--- src/zope/testing/testrunner/testrunner-ex-pp-products/sampletests.py 2008-05-05 18:50:48 +0000
227+++ src/zope/testing/testrunner/testrunner-ex-pp-products/sampletests.py 2009-10-07 16:40:23 +0000
228@@ -13,7 +13,6 @@
229 ##############################################################################
230
231 import unittest
232-from zope.testing import doctest
233
234 class Test(unittest.TestCase):
235
236
237=== modified file 'src/zope/testing/testrunner/testrunner-ex/gc0.py'
238--- src/zope/testing/testrunner/testrunner-ex/gc0.py 2008-05-05 18:50:48 +0000
239+++ src/zope/testing/testrunner/testrunner-ex/gc0.py 2009-10-07 16:40:23 +0000
240@@ -11,7 +11,6 @@
241 # FOR A PARTICULAR PURPOSE.
242 #
243 ##############################################################################
244-import unittest
245 from zope.testing import doctest
246
247 def make_sure_gc_is_disabled():
248
249=== modified file 'src/zope/testing/testrunner/testrunner-ex/gc1.py'
250--- src/zope/testing/testrunner/testrunner-ex/gc1.py 2008-05-05 18:50:48 +0000
251+++ src/zope/testing/testrunner/testrunner-ex/gc1.py 2009-10-07 16:40:23 +0000
252@@ -11,7 +11,6 @@
253 # FOR A PARTICULAR PURPOSE.
254 #
255 ##############################################################################
256-import unittest
257 from zope.testing import doctest
258
259 def make_sure_gc_threshold_is_one():
260
261=== modified file 'src/zope/testing/testrunner/testrunner-ex/gcset.py'
262--- src/zope/testing/testrunner/testrunner-ex/gcset.py 2008-05-05 18:50:48 +0000
263+++ src/zope/testing/testrunner/testrunner-ex/gcset.py 2009-10-07 16:40:23 +0000
264@@ -11,7 +11,6 @@
265 # FOR A PARTICULAR PURPOSE.
266 #
267 ##############################################################################
268-import unittest
269 from zope.testing import doctest
270
271 def make_sure_gc_threshold_is_701_11_9():
272
273=== modified file 'src/zope/testing/testrunner/testrunner-ex/gcstats.py'
274--- src/zope/testing/testrunner/testrunner-ex/gcstats.py 2008-05-05 18:50:48 +0000
275+++ src/zope/testing/testrunner/testrunner-ex/gcstats.py 2009-10-07 16:40:23 +0000
276@@ -11,7 +11,6 @@
277 # FOR A PARTICULAR PURPOSE.
278 #
279 ##############################################################################
280-import unittest
281 from zope.testing import doctest
282
283 def generate_some_gc_statistics():
284
285=== modified file 'src/zope/testing/testrunner/testrunner-ex/leak.py'
286--- src/zope/testing/testrunner/testrunner-ex/leak.py 2008-05-05 18:50:48 +0000
287+++ src/zope/testing/testrunner/testrunner-ex/leak.py 2009-10-07 16:40:23 +0000
288@@ -12,7 +12,7 @@
289 #
290 ##############################################################################
291
292-import unittest, sys, time
293+import unittest, time
294
295 class ClassicLeakable:
296 def __init__(self):
297
298=== modified file 'src/zope/testing/testrunner/testrunner-ex/pledge.py'
299--- src/zope/testing/testrunner/testrunner-ex/pledge.py 2008-05-05 18:50:48 +0000
300+++ src/zope/testing/testrunner/testrunner-ex/pledge.py 2009-10-07 16:40:23 +0000
301@@ -11,7 +11,6 @@
302 # FOR A PARTICULAR PURPOSE.
303 #
304 ##############################################################################
305-import unittest
306 from zope.testing import doctest
307
308 pledge_template = """\
309
310=== modified file 'src/zope/testing/testrunner/testrunner-ex/sample2/sample21/sampletests_i.py'
311--- src/zope/testing/testrunner/testrunner-ex/sample2/sample21/sampletests_i.py 2008-05-05 18:50:48 +0000
312+++ src/zope/testing/testrunner/testrunner-ex/sample2/sample21/sampletests_i.py 2009-10-07 16:40:23 +0000
313@@ -12,10 +12,9 @@
314 #
315 ##############################################################################
316
317+import unittest
318 import zope.testing.huh
319
320-from zope.testing import doctest
321-
322 class Test(unittest.TestCase):
323
324 def test(self):
325
326=== modified file 'src/zope/testing/testrunner/testrunner-ex/sample2/sample22/sampletests_i.py'
327--- src/zope/testing/testrunner/testrunner-ex/sample2/sample22/sampletests_i.py 2008-05-05 18:50:48 +0000
328+++ src/zope/testing/testrunner/testrunner-ex/sample2/sample22/sampletests_i.py 2009-10-07 16:40:23 +0000
329@@ -13,7 +13,6 @@
330 ##############################################################################
331
332 import unittest
333-from zope.testing import doctest
334
335 class Test(unittest.TestCase):
336
337
338=== modified file 'src/zope/testing/testrunner/testrunner-ex/sample2/sample23/sampletests_i.py'
339--- src/zope/testing/testrunner/testrunner-ex/sample2/sample23/sampletests_i.py 2008-05-05 18:50:48 +0000
340+++ src/zope/testing/testrunner/testrunner-ex/sample2/sample23/sampletests_i.py 2009-10-07 16:40:23 +0000
341@@ -13,7 +13,6 @@
342 ##############################################################################
343
344 import unittest
345-from zope.testing import doctest
346
347 class Test(unittest.TestCase):
348
349
350=== modified file 'src/zope/testing/testrunner/testrunner-ex/sample2/sampletests_f.py'
351--- src/zope/testing/testrunner/testrunner-ex/sample2/sampletests_f.py 2008-05-05 18:50:48 +0000
352+++ src/zope/testing/testrunner/testrunner-ex/sample2/sampletests_f.py 2009-10-07 16:40:23 +0000
353@@ -13,7 +13,6 @@
354 ##############################################################################
355
356 import unittest
357-from zope.testing import doctest
358
359 class Test(unittest.TestCase):
360
361
362=== modified file 'src/zope/testing/testrunner/testrunner-gc.txt'
363--- src/zope/testing/testrunner/testrunner-gc.txt 2009-04-22 13:26:42 +0000
364+++ src/zope/testing/testrunner/testrunner-gc.txt 2009-10-07 16:40:23 +0000
365@@ -62,6 +62,25 @@
366 Tearing down left over layers:
367 Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
368
369+Specifying more than 3 --gc options is not allowed:
370+
371+
372+ >>> from StringIO import StringIO
373+ >>> out = StringIO()
374+ >>> stdout = sys.stdout
375+ >>> sys.stdout = out
376+
377+ >>> sys.argv = ('test --tests-pattern ^gcset$ --gc 701 --gc 42 --gc 11 --gc 9 -vv'
378+ ... .split())
379+ >>> _ = testrunner.run_internal(defaults)
380+ Traceback (most recent call last):
381+ ...
382+ SystemExit: 1
383+
384+ >>> sys.stdout = stdout
385+
386+ >>> print out.getvalue()
387+ Too many --gc options
388
389 Garbage Collection Statistics
390 -----------------------------
391
392=== modified file 'src/zope/testing/testrunner/testrunner-layers-buff.txt'
393--- src/zope/testing/testrunner/testrunner-layers-buff.txt 2009-09-21 14:30:46 +0000
394+++ src/zope/testing/testrunner/testrunner-layers-buff.txt 2009-10-07 16:40:23 +0000
395@@ -140,3 +140,96 @@
396 .
397 LAYER FINISHED
398 ----------------------------------------------------------------------
399+
400+
401+Fake an IOError reading the output of the subprocess to exercise the
402+reporting of that error:
403+
404+ >>> class FakeStdout(object):
405+ ... raised = False
406+ ... def __init__(self, msg):
407+ ... self.msg = msg
408+ ... def readline(self):
409+ ... if not self.raised:
410+ ... self.raised = True
411+ ... raise IOError(self.msg)
412+
413+ >>> class FakeStderr(object):
414+ ... def __init__(self, msg):
415+ ... self.msg = msg
416+ ... def read(self):
417+ ... return self.msg
418+
419+ >>> class FakeProcess(object):
420+ ... def __init__(self, out, err):
421+ ... self.stdout = FakeStdout(out)
422+ ... self.stderr = FakeStderr(err)
423+
424+ >>> class FakePopen(object):
425+ ... def __init__(self, out, err):
426+ ... self.out = out
427+ ... self.err = err
428+ ... def __call__(self, *args, **kw):
429+ ... return FakeProcess(self.out, self.err)
430+
431+ >>> import subprocess
432+ >>> Popen = subprocess.Popen
433+ >>> subprocess.Popen = FakePopen(
434+ ... "Failure triggered to verify error reporting",
435+ ... "0 0 0")
436+
437+ >>> directory_with_tests = os.path.join(this_directory, 'testrunner-ex')
438+ >>> from zope.testing import testrunner
439+ >>> defaults = [
440+ ... '--path', directory_with_tests,
441+ ... ]
442+ >>> argv = [sys.argv[0],
443+ ... '-vv', '--tests-pattern', '^sampletests_buffering.*']
444+
445+ >>> _ = testrunner.run_internal(defaults, argv)
446+ Running tests at level 1
447+ Running sampletests_buffering.Layer1 tests:
448+ Set up sampletests_buffering.Layer1 in N.NNN seconds.
449+ Running:
450+ test_something (sampletests_buffering.TestSomething1)
451+ Ran 1 tests with 0 failures and 0 errors in N.NNN seconds.
452+ Running sampletests_buffering.Layer2 tests:
453+ Tear down sampletests_buffering.Layer1 ... not supported
454+ Error reading subprocess output for sampletests_buffering.Layer2
455+ Failure triggered to verify error reporting
456+ Total: 1 tests, 0 failures, 0 errors in N.NNN seconds.
457+
458+Now fake an empty stderr to test reporting a failure when
459+communicating with the subprocess:
460+
461+ >>> subprocess.Popen = FakePopen(
462+ ... "Failure triggered to verify error reporting",
463+ ... "")
464+
465+ >>> directory_with_tests = os.path.join(this_directory, 'testrunner-ex')
466+ >>> from zope.testing import testrunner
467+ >>> defaults = [
468+ ... '--path', directory_with_tests,
469+ ... ]
470+ >>> argv = [sys.argv[0],
471+ ... '-vv', '--tests-pattern', '^sampletests_buffering.*']
472+
473+ >>> _ = testrunner.run_internal(defaults, argv)
474+ Running tests at level 1
475+ Running sampletests_buffering.Layer1 tests:
476+ Set up sampletests_buffering.Layer1 in N.NNN seconds.
477+ Running:
478+ test_something (sampletests_buffering.TestSomething1)
479+ Ran 1 tests with 0 failures and 0 errors in N.NNN seconds.
480+ Running sampletests_buffering.Layer2 tests:
481+ Tear down sampletests_buffering.Layer1 ... not supported
482+ Error reading subprocess output for sampletests_buffering.Layer2
483+ Failure triggered to verify error reporting
484+ <BLANKLINE>
485+ **********************************************************************
486+ Could not communicate with subprocess
487+ **********************************************************************
488+ <BLANKLINE>
489+ Total: 1 tests, 0 failures, 0 errors in N.NNN seconds.
490+
491+ >>> subprocess.Popen = Popen
492
493=== modified file 'src/zope/testing/tests.py'
494--- src/zope/testing/tests.py 2009-02-16 19:56:41 +0000
495+++ src/zope/testing/tests.py 2009-10-07 16:40:23 +0000
496@@ -16,11 +16,9 @@
497 $Id: tests.py 96603 2009-02-16 19:56:41Z gary $
498 """
499
500-import os
501 import re
502-import sys
503 import unittest
504-from zope.testing import doctest, testrunner, renormalizing
505+from zope.testing import doctest, renormalizing
506
507 def test_suite():
508 return unittest.TestSuite((

Subscribers

People subscribed via source and target branches

to all changes: