Ticket #1296: combined-debug-trial.darcs.patch

File combined-debug-trial.darcs.patch, 36.3 KB (added by davidsarah, at 2011-01-10T07:49:52Z)

Combined changes to support 'tahoe debug trial'. This version is better-factored into patches and less dependent on Twisted Trial implementation details. It should also be correctly recorded relative to trunk.

Line 
16 patches for repository davidsarah@dev.allmydata.org:/home/darcs/tahoe/trunk:
2
3Mon Jan 10 06:23:14 GMT Standard Time 2011  david-sarah@jacaranda.org
4  * src/allmydata/scripts/debug.py: add 'tahoe debug trial' command. refs #1296
5
6Mon Jan 10 06:28:31 GMT Standard Time 2011  david-sarah@jacaranda.org
7  * Tests for 'tahoe debug trial'. refs #1296
8
9Mon Jan 10 06:30:35 GMT Standard Time 2011  david-sarah@jacaranda.org
10  * Make 'setup.py trial' and 'setup.py test' use 'bin/tahoe debug trial instead of setuptools_trial.
11
12Mon Jan 10 06:33:06 GMT Standard Time 2011  david-sarah@jacaranda.org
13  * Remove setuptools_trial egg.
14
15Mon Jan 10 06:34:19 GMT Standard Time 2011  david-sarah@jacaranda.org
16  * Add documentation for 'tahoe debug trial'.
17
18Mon Jan 10 06:37:02 GMT Standard Time 2011  david-sarah@jacaranda.org
19  * Makefile: use the same method of running bin/tahoe consistently, and use 'tahoe debug trial' to run tests. Set TEST to allmydata.test rather than allmydata.
20
21New patches:
22
23[src/allmydata/scripts/debug.py: add 'tahoe debug trial' command. refs #1296
24david-sarah@jacaranda.org**20110110062314
25 Ignore-this: ea898abe8dfccb158684b48f1ec2271b
26] {
27hunk ./src/allmydata/scripts/debug.py 4
28 
29 # do not import any allmydata modules at this level. Do that from inside
30 # individual functions instead.
31-import struct, time, os
32+import struct, time, os, sys
33 from twisted.python import usage, failure
34 from twisted.internet import defer
35hunk ./src/allmydata/scripts/debug.py 7
36+from twisted.scripts import trial as twisted_trial
37 
38 
39 class DumpOptions(usage.Options):
40hunk ./src/allmydata/scripts/debug.py 782
41     return code.interact()
42 
43 
44+class TrialOptions(twisted_trial.Options):
45+    def getSynopsis(self):
46+        return "Usage: tahoe debug trial [options] [[file|package|module|TestCase|testmethod]...]"
47+
48+    def parseArgs(self, *args):
49+        self.no_args = not args
50+
51+    def getUsage(self, width=None):
52+        t = twisted_trial.Options.getUsage(self, width)
53+        t += """
54+The 'tahoe debug trial' command uses the correct imports for this instance of
55+Tahoe-LAFS. The default test suite is 'allmydata.test'.
56+"""
57+        return t
58+
59+
60+def trial(config):
61+    sys.argv = ['trial'] + sys.argv[3:]
62+    if config.no_args:
63+        sys.argv += ['allmydata.test']
64+
65+    # This does not return.
66+    twisted_trial.run()
67+
68+
69 class DebugCommand(usage.Options):
70     subCommands = [
71         ["dump-share", None, DumpOptions,
72hunk ./src/allmydata/scripts/debug.py 816
73         ["catalog-shares", None, CatalogSharesOptions, "Describe all shares in node dirs."],
74         ["corrupt-share", None, CorruptShareOptions, "Corrupt a share by flipping a bit."],
75         ["repl", None, ReplOptions, "Open a Python interpreter."],
76+        ["trial", None, TrialOptions, "Run Twisted Trial with the correct imports."],
77         ]
78     def postOptions(self):
79         if not hasattr(self, 'subOptions'):
80hunk ./src/allmydata/scripts/debug.py 833
81     tahoe debug catalog-shares  Describe all shares in node dirs.
82     tahoe debug corrupt-share   Corrupt a share by flipping a bit.
83     tahoe debug repl            Open a Python interpreter.
84+    tahoe debug trial           Run Twisted Trial with the correct imports.
85 
86 Please run e.g. 'tahoe debug dump-share --help' for more details on each
87 subcommand.
88hunk ./src/allmydata/scripts/debug.py 847
89     "catalog-shares": catalog_shares,
90     "corrupt-share": corrupt_share,
91     "repl": repl,
92+    "trial": trial,
93     }
94 
95 
96}
97[Tests for 'tahoe debug trial'. refs #1296
98david-sarah@jacaranda.org**20110110062831
99 Ignore-this: 7ba12fd9e2e707627a6dff44a9d89be7
100] {
101hunk ./src/allmydata/test/test_cli.py 506
102         help = str(cli.AddAliasOptions())
103         self.failUnless("add-alias ALIAS DIRCAP" in help, help)
104 
105+    def test_debug_trial(self):
106+        help = str(debug.TrialOptions())
107+        self.failUnless("debug trial [options] [[file|package|module|TestCase|testmethod]...]" in help, help)
108+        self.failUnless("The 'tahoe debug trial' command uses the correct imports" in help, help)
109+
110 
111 class CreateAlias(GridTestMixin, CLITestMixin, unittest.TestCase):
112 
113hunk ./src/allmydata/test/test_system.py 1756
114 
115         return d
116 
117+    def test_debug_trial(self, *args):
118+        d = self._run_cli_in_subprocess(['debug', 'trial', 'allmydata.test.trialtest'])
119+        def _check_failure( (out, err, rc) ):
120+            self.failUnlessEqual(rc, 1)
121+            self.failUnlessIn("[SKIPPED]: allmydata.test.trialtest.Success.test_skip", out)
122+            self.failUnlessIn("[TODO]: allmydata.test.trialtest.Success.test_todo", out)
123+            self.failUnlessIn("[FAIL]: allmydata.test.trialtest.Failure.test_fail", out)
124+            self.failUnlessIn("[ERROR]: allmydata.test.trialtest.Failure.test_deferred_error", out)
125+            self.failUnlessIn("[ERROR]: allmydata.test.trialtest.Failure.test_error", out)
126+            self.failUnlessIn("FAILED", out)
127+        d.addCallback(_check_failure)
128+
129+        d.addCallback(lambda ign: self._run_cli_in_subprocess(['debug', 'trial', 'allmydata.test.trialtest.Success']))
130+        def _check_success( (out, err, rc) ):
131+            self.failUnlessEqual(rc, 0)
132+            self.failUnlessIn("[SKIPPED]: allmydata.test.trialtest.Success.test_skip", out)
133+            self.failUnlessIn("[TODO]: allmydata.test.trialtest.Success.test_todo", out)
134+            self.failUnlessIn("PASSED", out)
135+        d.addCallback(_check_success)
136+        return d
137+
138     def _run_cli(self, argv, stdin=""):
139         #print "CLI:", argv
140         stdout, stderr = StringIO(), StringIO()
141addfile ./src/allmydata/test/trialtest.py
142hunk ./src/allmydata/test/trialtest.py 2
143 
144+# This is a dummy test suite that we can use to check that 'tahoe debug trial'
145+# is working properly. Since the module name does not start with 'test_', it
146+# will not be run by the main test suite.
147+
148+from twisted.trial import unittest
149+from twisted.internet import defer
150+
151+
152+class Success(unittest.TestCase):
153+    def test_succeed(self):
154+        pass
155+
156+    def test_skip(self):
157+        raise unittest.SkipTest('skip')
158+
159+    def test_todo(self):
160+        self.fail('umm')
161+    test_todo.todo = 'never mind'
162+
163+
164+class Failure(unittest.TestCase):
165+    def test_fail(self):
166+        self.fail('fail')
167+
168+    def test_error(self):
169+        raise AssertionError('clang')
170+
171+    def test_deferred_error(self):
172+        return defer.fail(AssertionError('screech'))
173}
174[Make 'setup.py trial' and 'setup.py test' use 'bin/tahoe debug trial instead of setuptools_trial.
175david-sarah@jacaranda.org**20110110063035
176 Ignore-this: 12c9c0291d01c147b1ede02e8911af1
177] {
178hunk ./setup.py 67
179 install_requires = adglobals['install_requires']
180 
181 __requires__ = install_requires[:]
182-if 'trial' in sys.argv or 'test' in sys.argv:
183-    if version is not None:
184-        __requires__.append(APPNAME + '==' + version)
185-    else:
186-        __requires__.append(APPNAME)
187 
188 egg = os.path.realpath(glob.glob('setuptools-*.egg')[0])
189 sys.path.insert(0, egg)
190hunk ./setup.py 132
191 # http://pypi.python.org/pypi/darcsver
192 setup_requires.append('darcsver >= 1.7.1')
193 
194-# Nevow requires Twisted to setup, but doesn't declare that requirement in a
195-# way that enables setuptools to satisfy that requirement before Nevow's
196-# setup.py tried to "import twisted". Fortunately we require setuptools_trial
197-# to setup and setuptools_trial requires Twisted to install, so hopefully
198-# everything will work out until the Nevow issue is fixed:
199-# http://divmod.org/trac/ticket/2629 setuptools_trial is needed if you want
200-# "./setup.py trial" or "./setup.py test" to execute the tests (and in order
201-# to make sure Twisted is installed early enough -- see the paragraph above).
202-# http://pypi.python.org/pypi/setuptools_trial
203-setup_requires.extend(['setuptools_trial >= 0.5'])
204-
205 # setuptools_darcs is required to produce complete distributions (such as
206 # with "sdist" or "bdist_egg") (unless there is a PKG-INFO file present which
207 # shows that this is itself a source distribution). For simplicity, and
208hunk ./setup.py 140
209 # to setup_requires. http://pypi.python.org/pypi/setuptools_darcs
210 setup_requires.append('setuptools_darcs >= 1.1.0')
211 
212-# trialcoverage is required if you want the "trial" unit test runner to have a
213-# "--reporter=bwverbose-coverage" option which produces code-coverage results.
214-# The required version is 0.3.3, because that is the latest version that only
215-# depends on a version of pycoverage for which binary packages are available.
216-if "--reporter=bwverbose-coverage" in sys.argv:
217-    setup_requires.append('trialcoverage >= 0.3.3')
218-
219 # stdeb is required to produce Debian files with the "sdist_dsc" command.
220 if "sdist_dsc" in sys.argv:
221     setup_requires.append('stdeb >= 0.3')
222hunk ./setup.py 225
223         import test_mac_diskimage
224         return test_mac_diskimage.test_mac_diskimage('Allmydata', version=self.distribution.metadata.version)
225 
226+class Trial(Command):
227+    # This is just a subset of the most useful options, for compatibility.
228+    # Use 'bin/tahoe debug trial' for the full set of trial options.
229+    user_options = [ ("rterrors", "e", "Print out tracebacks as soon as they occur."),
230+                     ("reporter=", None, "The reporter to use for this test run."),
231+                     ("suite=", "s", "Specify the test suite."),
232+                   ]
233+    def initialize_options(self):
234+        self.rterrors = False
235+        self.reporter = None
236+        self.suite = "allmydata.test"
237+    def finalize_options(self):
238+        pass
239+    def run(self):
240+        args = [sys.executable, os.path.join('bin', 'tahoe.pyscript'), 'debug', 'trial']
241+        if self.rterrors:
242+            args += ['--rterrors']
243+        if self.reporter:
244+            args += [self.reporter]
245+        if self.suite:
246+            args += [self.suite]
247+        rc = subprocess.call(args)
248+        sys.exit(rc)
249+
250 class CheckAutoDeps(Command):
251     user_options = []
252     def initialize_options(self):
253hunk ./setup.py 270
254     def run(self):
255         bin_tahoe_template = os.path.join("bin", "tahoe-script.template")
256 
257-        if sys.platform == 'win32':
258-            # 'tahoe' script is needed for cygwin
259-            script_names = ["tahoe.pyscript", "tahoe"]
260-        else:
261-            script_names = ["tahoe"]
262+        # tahoe.pyscript is really only necessary for Windows, but we also
263+        # create it on Unix for consistency.
264+        script_names = ["tahoe.pyscript", "tahoe"]
265 
266         # Create the tahoe script file under the 'bin' directory. This
267         # file is exactly the same as the 'tahoe-script.template' script
268hunk ./setup.py 370
269                 "run_with_pythonpath": RunWithPythonPath,
270                 "check_auto_deps": CheckAutoDeps,
271                 "test_mac_diskimage": TestMacDiskImage,
272+                "trial": Trial,
273                 "make_executable": MakeExecutable,
274                 "sdist": MySdist,
275                 },
276}
277[Remove setuptools_trial egg.
278david-sarah@jacaranda.org**20110110063306
279 Ignore-this: 329f5062db0c7914464c547a3957c596
280] {
281hunk ./setuptools_trial-0.5.9.egg/share/doc/python-setuptools_trial/COPYING.SPL.txt 1
282-Permission is hereby granted to any person obtaining a copy of this work to
283-deal in this work without restriction (including the rights to use, modify,
284-distribute, sublicense, and/or sell copies).
285rmfile ./setuptools_trial-0.5.9.egg/share/doc/python-setuptools_trial/COPYING.SPL.txt
286hunk ./setuptools_trial-0.5.9.egg/share/doc/python-setuptools_trial/README.txt 1
287-
288-setuptools_trial Manual
289-=======================
290-
291-About
292------
293-
294-This is a plugin for setuptools that integrates Twisted trial.  Once
295-installed, "python ./setup.py trial" will run the package's unit tests
296-using Twisted trial.  The package can also optionally be configured so
297-that "python ./setup.py test" will use Twisted trial instead of pyunit
298-a.k.a. unittest.
299-
300-
301-Installation
302-------------
303-
304-With easy_install:
305-
306-  easy_install setuptools_trial
307-
308-Alternative manual installation:
309-
310-  tar -zxvf setuptools_trial-X.Y.Z.tar.gz
311-  cd setuptools_trial-X.Y.Z
312-  python setup.py install
313-
314-Where X.Y.Z is a version number.
315-
316-Alternative to make a specific package use setuptools_trial without
317-installing setuptools_trial into the system:
318-
319-  Put "setup_requires=['setuptools_trial']" in the call to setup() in
320-  the package's setup.py file.
321-
322-
323-Usage
324------
325-
326-To use this plugin, you must first package your python module with
327-`setup.py` and use setuptools.  The former is well documented in the
328-distutils manual:
329-
330-  http://docs.python.org/dist/dist.html
331-
332-To use setuptools instead of distutils, just edit `setup.py` and
333-change
334-
335-  from distutils.core import setup
336-
337-to
338-
339-  from setuptools import setup
340-
341-Once setuptools_trial is installed (either into the system or just for
342-the current package), then "python ./setup.py trial" will run trial on
343-the package.
344-
345-You can then make "python ./setup.py test" use trial instead of pyunit
346-(unittest) by adding the following stanza to your project's setup.py:
347-
348-  [aliases]
349-  test = trial
350-
351-See also the output of "python ./setup.py trial --help" for usage
352-options.
353-
354-
355-References
356-----------
357-
358-How to distribute Python modules with Distutils:
359-
360-  http://docs.python.org/dist/dist.html
361-
362-
363-Setuptools complete manual:
364-
365-  http://peak.telecommunity.com/DevCenter/setuptools
366-
367-
368-Thanks to Yannick Gingras for providing the prototype for this
369-README.txt.
370rmfile ./setuptools_trial-0.5.9.egg/share/doc/python-setuptools_trial/README.txt
371rmdir ./setuptools_trial-0.5.9.egg/share/doc/python-setuptools_trial
372rmdir ./setuptools_trial-0.5.9.egg/share/doc
373rmdir ./setuptools_trial-0.5.9.egg/share
374rmfile ./setuptools_trial-0.5.9.egg/setuptools_trial/__init__.py
375hunk ./setuptools_trial-0.5.9.egg/setuptools_trial/_version.py 1
376-
377-# This is the version of this tree, as created by setup.py darcsver from the Darcs patch
378-# information: the main version number is taken from the most recent release
379-# tag. If some patches have been added since the last release, this will have a
380-# -NN "build number" suffix, or else a -rNN "revision number" suffix. Please see
381-# pyutil.version_class for a description of what the different fields mean.
382-
383-verstr = "0.5.9"
384-try:
385-    from pyutil.version_class import Version as pyutil_Version
386-    __version__ = pyutil_Version(verstr)
387-except (ImportError, ValueError):
388-    # Maybe there is no pyutil installed, or this may be an older version of
389-    # pyutil.version_class which does not support SVN-alike revision numbers.
390-    from distutils.version import LooseVersion as distutils_Version
391-    __version__ = distutils_Version(verstr)
392rmfile ./setuptools_trial-0.5.9.egg/setuptools_trial/_version.py
393hunk ./setuptools_trial-0.5.9.egg/setuptools_trial/setuptools_trial.py 1
394-import sys
395-
396-from setuptools.command import test
397-
398-
399-class TrialTest(test.test):
400-    """
401-    Twisted Trial setuptools command
402-    """
403-
404-    user_options = test.test.user_options + [
405-        ('rterrors', 'e', "Realtime errors: print out tracebacks as soon as they occur."),
406-        ('debug-stacktraces', 'B', "Report Deferred creation and callback stack traces."),
407-        ('coverage','c', "Report coverage data."),
408-        ('reactor=','r', "which reactor to use"),
409-        ('reporter=', None, "Customize Trial's output with a Reporter plugin."),
410-        ('until-failure','u', "Repeat test until it fails."),
411-    ]
412-
413-    boolean_options = ['coverage', 'debug-stacktraces', 'rterrors']
414-
415-    def initialize_options(self):
416-        test.test.initialize_options(self)
417-        self.coverage = None
418-        self.debug_stacktraces = None
419-        self.reactor = None
420-        self.reporter = None
421-        self.rterrors = None
422-        self.until_failure = None
423-
424-    def finalize_options(self):
425-        if self.test_suite is None:
426-            if self.test_module is None:
427-                self.test_suite = self.distribution.test_suite
428-            else:
429-                self.test_suite = self.test_module
430-        elif self.test_module:
431-            raise DistutilsOptionError(
432-                "You may specify a module or a suite, but not both"
433-            )
434-
435-        self.test_args = self.test_suite
436-
437-    def run_tests(self):
438-        # We do the import from Twisted inside the function instead of the top
439-        # of the file because since Twisted is a setup_requires, we can't
440-        # assume that Twisted will be installed on the user's system prior
441-        # to using Tahoe, so if we don't do the import here, then importing
442-        # from this plugin will fail.
443-        from twisted.scripts import trial
444-
445-        # Handle parsing the trial options passed through the setuptools
446-        # trial command.
447-        cmd_options = []
448-        if self.reactor is not None:
449-            cmd_options.extend(['--reactor', self.reactor])
450-        else:
451-            # Cygwin requires the poll reactor to work at all.  Linux requires the poll reactor
452-            # to avoid twisted bug #3218.  In general, the poll reactor is better than the
453-            # select reactor, but it is not available on all platforms.  According to exarkun on
454-            # IRC, it is available but buggy on some versions of Mac OS X, so just because you
455-            # can install it doesn't mean we want to use it on every platform.
456-            # Unfortunately this leads to this error with some combinations of tools:
457-            # twisted.python.usage.UsageError: The specified reactor cannot be used, failed with error: reactor already installed.
458-            if sys.platform in ("cygwin"):
459-                cmd_options.extend(['--reactor', 'poll'])
460-        if self.reporter is not None:
461-            cmd_options.extend(['--reporter', self.reporter])
462-        if self.rterrors is not None:
463-            cmd_options.append('--rterrors')
464-        if self.debug_stacktraces is not None:
465-            cmd_options.append('--debug-stacktraces')
466-        config = trial.Options()
467-        config.parseOptions(cmd_options)
468-
469-
470-        args = self.test_args
471-        if type(args) == str:
472-            args = [args,]
473-
474-        config['tests'] = args
475-
476-        if self.coverage:
477-            config.opt_coverage()
478-
479-        trial._initialDebugSetup(config)
480-        trialRunner = trial._makeRunner(config)
481-        suite = trial._getSuite(config)
482-
483-        # run the tests
484-        if self.until_failure:
485-            test_result = trialRunner.runUntilFailure(suite)
486-        else:
487-            test_result = trialRunner.run(suite)
488-
489-        # write coverage data
490-        if config.tracer:
491-            sys.settrace(None)
492-            results = config.tracer.results()
493-            results.write_results(show_missing=1, summary=False,
494-                                  coverdir=config.coverdir)
495-
496-        if test_result.wasSuccessful():
497-            sys.exit(0) # success
498-        else:
499-            sys.exit(1) # failure
500rmfile ./setuptools_trial-0.5.9.egg/setuptools_trial/setuptools_trial.py
501rmdir ./setuptools_trial-0.5.9.egg/setuptools_trial
502hunk ./setuptools_trial-0.5.9.egg/EGG-INFO/PKG-INFO 1
503-Metadata-Version: 1.0
504-Name: setuptools-trial
505-Version: 0.5.9
506-Summary: Setuptools plugin that makes unit tests execute with trial instead of pyunit.
507-Home-page: http://allmydata.org/trac/setuptools_trial
508-Author: Chris Galvan
509-Author-email: cgalvan@enthought.com
510-License: BSD
511-Description: UNKNOWN
512-Keywords: distutils setuptools trial setuptools_plugin
513-Platform: UNKNOWN
514-Classifier: Development Status :: 4 - Beta
515-Classifier: License :: OSI Approved :: BSD License
516-Classifier: License :: DFSG approved
517-Classifier: Intended Audience :: Developers
518-Classifier: Operating System :: OS Independent
519-Classifier: Natural Language :: English
520-Classifier: Programming Language :: Python
521-Classifier: Programming Language :: Python :: 2
522-Classifier: Programming Language :: Python :: 2.4
523-Classifier: Programming Language :: Python :: 2.5
524-Classifier: Programming Language :: Python :: 2.6
525-Classifier: Topic :: Utilities
526-Classifier: Topic :: Software Development :: Libraries
527-Classifier: Framework :: Setuptools Plugin
528rmfile ./setuptools_trial-0.5.9.egg/EGG-INFO/PKG-INFO
529hunk ./setuptools_trial-0.5.9.egg/EGG-INFO/SOURCES.txt 2
530 
531-COPYING.SPL.txt
532-README.txt
533-setup.py
534-setuptools_darcs-1.2.11-py2.6.egg/EGG-INFO/PKG-INFO
535-setuptools_darcs-1.2.11-py2.6.egg/EGG-INFO/SOURCES.txt
536-setuptools_darcs-1.2.11-py2.6.egg/EGG-INFO/dependency_links.txt
537-setuptools_darcs-1.2.11-py2.6.egg/EGG-INFO/entry_points.txt
538-setuptools_darcs-1.2.11-py2.6.egg/EGG-INFO/not-zip-safe
539-setuptools_darcs-1.2.11-py2.6.egg/EGG-INFO/top_level.txt
540-setuptools_darcs-1.2.11-py2.6.egg/setuptools_darcs/__init__.py
541-setuptools_darcs-1.2.11-py2.6.egg/setuptools_darcs/_version.py
542-setuptools_darcs-1.2.11-py2.6.egg/setuptools_darcs/setuptools_darcs.py
543-setuptools_darcs-1.2.11-py2.6.egg/share/doc/python-setuptools_darcs/README.txt
544-setuptools_trial/__init__.py
545-setuptools_trial/_version.py
546-setuptools_trial/setuptools_trial.py
547-setuptools_trial.egg-info/PKG-INFO
548-setuptools_trial.egg-info/SOURCES.txt
549-setuptools_trial.egg-info/dependency_links.txt
550-setuptools_trial.egg-info/entry_points.txt
551-setuptools_trial.egg-info/not-zip-safe
552-setuptools_trial.egg-info/requires.txt
553-setuptools_trial.egg-info/top_level.txt
554rmfile ./setuptools_trial-0.5.9.egg/EGG-INFO/SOURCES.txt
555hunk ./setuptools_trial-0.5.9.egg/EGG-INFO/dependency_links.txt 1
556-
557rmfile ./setuptools_trial-0.5.9.egg/EGG-INFO/dependency_links.txt
558hunk ./setuptools_trial-0.5.9.egg/EGG-INFO/entry_points.txt 1
559-[distutils.commands]
560-trial = setuptools_trial.setuptools_trial:TrialTest
561-
562rmfile ./setuptools_trial-0.5.9.egg/EGG-INFO/entry_points.txt
563hunk ./setuptools_trial-0.5.9.egg/EGG-INFO/not-zip-safe 1
564-
565rmfile ./setuptools_trial-0.5.9.egg/EGG-INFO/not-zip-safe
566hunk ./setuptools_trial-0.5.9.egg/EGG-INFO/requires.txt 1
567-Twisted >= 2.4.0
568+
569rmfile ./setuptools_trial-0.5.9.egg/EGG-INFO/requires.txt
570hunk ./setuptools_trial-0.5.9.egg/EGG-INFO/top_level.txt 1
571-setuptools_trial
572rmfile ./setuptools_trial-0.5.9.egg/EGG-INFO/top_level.txt
573rmdir ./setuptools_trial-0.5.9.egg/EGG-INFO
574rmdir ./setuptools_trial-0.5.9.egg
575}
576[Add documentation for 'tahoe debug trial'.
577david-sarah@jacaranda.org**20110110063419
578 Ignore-this: 7121889200e052570a709e3cf4d14df1
579] {
580hunk ./docs/frontends/CLI.rst 549
581 Debugging
582 =========
583 
584-For a list of all debugging commands, use "``tahoe debug``".
585+For a list of all debugging commands, use "``tahoe debug``". For more detailed
586+help on any of these commands, use "``tahoe debug COMMAND --help``".
587 
588 "``tahoe debug find-shares STORAGEINDEX NODEDIRS..``" will look through one or
589 more storage nodes for the share files that are providing storage for the
590hunk ./docs/frontends/CLI.rst 584
591 sharefile. This can be used to test the client-side verification/repair code.
592 Obviously, this command should not be used during normal operation.
593 
594+"``tahoe debug trial [OPTIONS] [TESTSUITE]``" will run the tests specified by
595+TESTSUITE (defaulting to the whole Tahoe test suite), using Twisted Trial.
596}
597[Makefile: use the same method of running bin/tahoe consistently, and use 'tahoe debug trial' to run tests. Set TEST to allmydata.test rather than allmydata.
598david-sarah@jacaranda.org**20110110063702
599 Ignore-this: 56338f6a663434ed0e8c2744a216be53
600] {
601hunk ./Makefile 14
602 
603 PP=$(shell $(PYTHON) setup.py -q show_pythonpath)
604 RUNPP=$(PYTHON) setup.py run_with_pythonpath
605+TAHOE=$(PYTHON) bin/tahoe.pyscript
606 
607 .PHONY: make-version build
608 
609hunk ./Makefile 107
610 # you can use 'make test TEST=allmydata.test.test_introducer' to run just
611 # test_introducer. TEST=allmydata.test.test_client.Basic.test_permute works
612 # too.
613-TEST=allmydata
614+TEST=allmydata.test
615 
616 # use 'make test TRIALARGS=--reporter=bwverbose' from buildbot, to
617 # suppress the ansi color sequences
618hunk ./Makefile 120
619 
620 test-coverage: build src/allmydata/_version.py
621        rm -f .coverage
622-       $(PYTHON) setup.py trial --reporter=bwverbose-coverage -s $(TEST)
623+       $(TAHOE) debug trial --reporter=bwverbose-coverage $(TEST)
624 
625 quicktest:
626hunk ./Makefile 123
627-       $(PYTHON) misc/build_helpers/run-with-pythonpath.py trial $(TRIALARGS) $(TEST)
628+       $(TAHOE) debug trial $(TRIALARGS) $(TEST)
629 
630 # code-coverage: install the "coverage" package from PyPI, do "make
631 # quicktest-coverage" to do a unit test run with coverage-gathering enabled,
632hunk ./Makefile 133
633 
634 quicktest-coverage:
635        rm -f .coverage
636-       $(PYTHON) misc/build_helpers/run-with-pythonpath.py trial --reporter=bwverbose-coverage $(TEST)
637+       $(TAHOE) debug trial --reporter=bwverbose-coverage $(TEST)
638 # on my laptop, "quicktest" takes 239s, "quicktest-coverage" takes 304s
639 
640 # --include appeared in coverage-3.4
641hunk ./Makefile 223
642 check-speed: .built
643        if [ -z '$(TESTCLIENTDIR)' ]; then exit 1; fi
644        @echo "stopping any leftover client code"
645-       -$(PYTHON) bin/tahoe stop $(TESTCLIENTDIR)
646-       $(PYTHON) bin/tahoe start $(TESTCLIENTDIR)
647+       -$(TAHOE) stop $(TESTCLIENTDIR)
648+       $(TAHOE) start $(TESTCLIENTDIR)
649        sleep 5
650        $(PYTHON) src/allmydata/test/check_speed.py $(TESTCLIENTDIR)
651hunk ./Makefile 227
652-       $(PYTHON) bin/tahoe stop $(TESTCLIENTDIR)
653+       $(TAHOE) stop $(TESTCLIENTDIR)
654 
655 # The check-grid target also uses a pre-established client node, along with a
656 # long-term directory that contains some well-known files. See the docstring
657hunk ./Makefile 242
658 # 'make repl' is a simple-to-type command to get a Python interpreter loop
659 # from which you can type 'import allmydata'
660 repl:
661-       $(RUNPP) -p
662+       $(TAHOE) debug repl
663 
664 test-darcs-boringfile:
665        $(MAKE)
666}
667
668Context:
669
670[Makefile: Fix uploading of tarballs on trunk builds.
671david-sarah@jacaranda.org**20110109065851
672 Ignore-this: 864b06e39103f46dbb6ccb74e1e333d3
673]
674[docs/frontends/CLI.rst: fix the rst syntax to be as actually intended :-)
675david-sarah@jacaranda.org**20110109014057
676 Ignore-this: c11331670ba89d8601ba3782ffc4f32c
677]
678[docs/frontends/CLI.rst: really fix rst syntax error this time.
679david-sarah@jacaranda.org**20110109013914
680 Ignore-this: 59550154c9ab41488ddfdee8938d7bda
681]
682[docs/frontends/CLI.rst: fix rst syntax error.
683david-sarah@jacaranda.org**20110109010943
684 Ignore-this: 427444f5572115059c75fa1bd8371d51
685]
686[docs/frontends/CLI.rst: discuss commandline/output quoting issues and wildcards. refs #1135
687david-sarah@jacaranda.org**20110109010119
688 Ignore-this: 533938d89be878b404a8540aebdf68ad
689]
690[setup.py: add Python 2.7 trove classifier.
691david-sarah@jacaranda.org**20110108211212
692 Ignore-this: b479c0a1adf9b7a2d1fdc54abc6582e6
693]
694[docs/FTP-and-SFTP.rst: document issue in ref #1297. Remove known issue #1045 which is fixed. Also some cosmetic changes.
695david-sarah@jacaranda.org**20110108061038
696 Ignore-this: 8d9aa2e33f1054545f7bed47bf0e647d
697]
698[misc/build_helpers/show-tool-versions.py: remove attempts to show stdout.encoding and stderr.encoding that always printed None due to redirection. Also remove code to show os.path.supports_unicode_filenames which is not useful. refs #1251
699david-sarah@jacaranda.org**20110103015144
700 Ignore-this: 45e11431f7e2e0cebcb58e1841485cf8
701]
702[NEWS: 'top' for node processes, WUI formatting, removal of GUI apps, documentation updates, foolscap dependency. refs #174, #1219, #1225
703david-sarah@jacaranda.org**20110106005727
704 Ignore-this: f61ac58b4d10e635feb6f7391b1b48fe
705]
706[Makefile: update 'clean' target for files in bin/
707david-sarah@jacaranda.org**20110103052738
708 Ignore-this: 2bdbc4a50e13e508b66d0f65718c79b2
709]
710[docs: update performance.rst to describe the difference between already-uploaded and not-already-uploaded, to parameterize segment size, and to use "~A" to mean "approximately A"
711zooko@zooko.com**20110104065455
712 Ignore-this: 8df0d79a062ee19854c0211bd202f606
713]
714[bin/tahoe-script.template: On non-Windows, invoke support/bin/tahoe directly as a script (rather than via python), so that 'top' for example will show it as 'tahoe'. On Windows, simplify some code that set argv[0], which is never used. fixes #174
715david-sarah@jacaranda.org**20101127232650
716 Ignore-this: 42a86f3eecfdc1ea7b76a7cc68626898
717]
718[test_runner: avoid unnecessary use of non-ASCII.
719david-sarah@jacaranda.org**20110101100101
720 Ignore-this: e2ff40dce6bb3b021306f2913d4e75df
721]
722[docs/quickstart.html: fix redundant, badly nested tag. refs #1284
723david-sarah@jacaranda.org**20110102175159
724 Ignore-this: 2ae9cc0b47d2e87b9eb64a0f517c4eef
725]
726[docs/quickstart.html: information about 'troublesome dependencies' and 'verified systems' de-emphasized by smaller italic font. Re-wrap so that the HTML source is readable (just about) as text. Minor wording tweaks. Improve organization by adding 'Windows Caveats' subsection. fixes #1284
727david-sarah@jacaranda.org**20110102174212
728 Ignore-this: e9dc57983974478200856651c5318fee
729]
730[NEWS: update entry for removal of Mac and Windows apps. refs #1282
731david-sarah@jacaranda.org**20101226042245
732 Ignore-this: c8099bc6e8235718d042c9a13c1e2425
733]
734[Move dependency imports from windows/depends.py (which has gone away) into src/allmydata/windows/tahoesvc.py. Also fix a pyflakes warning, and change the service display name from 'Allmydata Tahoe Node' to 'Tahoe-LAFS node'. refs #1282
735david-sarah@jacaranda.org**20101226042100
736 Ignore-this: ee45f324934e1251380206dbee6346d0
737]
738[Remove unmaintained Windows GUI app, except for windows/tahoesvc.py which is moved to src/allmydata/windows. refs #1282
739david-sarah@jacaranda.org**20101226040237
740 Ignore-this: cae37b6622a7dd5940acc7d3e6a98b90
741]
742[Remove the Makefile targets relating to the Mac GUI app. refs #1282
743david-sarah@jacaranda.org**20101226025859
744 Ignore-this: 75303be783974b41138744ec62b07965
745]
746[NEWS: remove unmaintained Mac GUI app. refs #1282
747david-sarah@jacaranda.org**20101226020858
748 Ignore-this: 40474a07f4a550b48563d35350be7ab5
749]
750[Remove unmaintained Mac GUI app. fixes #1282
751david-sarah@jacaranda.org**20101226020508
752 Ignore-this: b3613bf1abfd284d542bf7c753ec557a
753]
754[Remove src/allmydata/util/find_exe.py which is no longer used. fixes #1150
755david-sarah@jacaranda.org**20101226023206
756 Ignore-this: 7436c9b53bf210aed34a1a973cd9cace
757]
758[status_web_pages_review.darcs.patch
759freestorm77@gmail.com**20110102034214
760 Ignore-this: 29f1ecb36177f10f3f846b3d56b313b2
761 
762 I make some changes on status web pages
763 
764 status.xhtml:
765 - Delete unused webform_css link
766 - Align tables on the left
767 
768 tahoe-css:
769 - Do some minor changes on code synthax
770 - changes table.status-download-events style to look like other tables
771 
772 status.py:
773 - Align table on the left
774 - Changes table header
775 - Add heading tags
776 - Modify google api graph: add image border, calculate height to feet data
777 
778 signed-off-by: zooko@zooko.com
779 fixes #1219
780]
781[test_storage.py: fix a pyflakes unused import warning.
782david-sarah@jacaranda.org**20101231220756
783 Ignore-this: df08231540cb7dff9d2b038e47ab30ee
784]
785[test_storage.py: leave at least 512 MiB free when running test_large_share. refs #1195
786david-sarah@jacaranda.org**20101231203215
787 Ignore-this: b2144c0341c3452b5d4ba219e284ea0e
788]
789[storage: use fileutil's version of get_disk_stats() and get_available_space(), use mockery/fakery in tests, enable large share test on platforms with sparse files and if > 4 GiB of disk space is currently available
790zooko@zooko.com**20100910173629
791 Ignore-this: 1304f1164c661de6d5304f993eb9b27b
792]
793[fileutil: copy in the get_disk_stats() and get_available_space() functions from storage/server.py
794zooko@zooko.com**20100910173520
795 Ignore-this: 8b15569715f710f4fc5092f7ca109253
796]
797[Update foolscap version requirement to 0.6.0, to address http://foolscap.lothar.com/trac/ticket/167
798david-sarah@jacaranda.org**20101231060039
799 Ignore-this: 98d2b8086a1a500b9f4565bca5a3810
800]
801[docs/webapi.rst: typos.
802david-sarah@jacaranda.org**20101230034422
803 Ignore-this: d1f5166d72cc711f7e0d9981eac9105e
804]
805[docs/webapi.rst: capitalization, formatting of section on URL character encoding, and a correction about Internet Explorer.
806david-sarah@jacaranda.org**20101230034049
807 Ignore-this: b3b9819d2fb264b4cdc5c8afd4e8c48d
808]
809[docs: corrections and clarifications.
810david-sarah@jacaranda.org**20101227051056
811 Ignore-this: e33202858c7644c58f3f924b164294b6
812]
813[docs: more formatting cleanups and corrections. Spell webapi and wapi as web-API.
814david-sarah@jacaranda.org**20101227050533
815 Ignore-this: 18b23cbfb780df585d8a722a1ec63e94
816]
817[docs/debian.rst: bring description of building dependencies from source up-to-date, and change hostname from allmydata.com to tahoe-lafs.org.
818david-sarah@jacaranda.org**20101212222912
819 Ignore-this: f38462afc88b4475195610385a28391c
820]
821[docs/architecture.rst: correct rst syntax.
822david-sarah@jacaranda.org**20101212202003
823 Ignore-this: 3fbe12feb28bec6f1c63aedbc79aad21
824]
825[docs/architecture.rst: formatting.
826david-sarah@jacaranda.org**20101212201719
827 Ignore-this: 305fa5dfc2939355eaf6d0d2161eb1ff
828]
829[docs: linkification, wording improvements.
830david-sarah@jacaranda.org**20101212201234
831 Ignore-this: 4e67287f527a8bc728cfbd93255d2aae
832]
833[docs: formatting.
834david-sarah@jacaranda.org**20101212201115
835 Ignore-this: 2e0ed394ac7726651d3a4f2c4b0d3798
836]
837[docs/configuration.rst: more formatting tweaks; which -> that.
838david-sarah@jacaranda.org**20101212195522
839 Ignore-this: a7becb7021854ca5a90edd892b36fdd7
840]
841[docs/configuration.rst: more changes to formatting.
842david-sarah@jacaranda.org**20101212194511
843 Ignore-this: 491aac33e5f5268d224359f1447d10be
844]
845[docs/configuration.rst: changes to formatting (mainly putting commands and filenames in monospace).
846david-sarah@jacaranda.org**20101212181828
847 Ignore-this: 8a1480e2d5f43bee678476424615b50f
848]
849[scripts/backupdb.py: more accurate comment about path field.
850david-sarah@jacaranda.org**20101212170320
851 Ignore-this: 50e47a2228a85207bbcd188a78a0d4e6
852]
853[scripts/cli.py: fix missing 'put' in usage example for 'tahoe put'.
854david-sarah@jacaranda.org**20101212170207
855 Ignore-this: 2cbadf066fff611fc03d3c0ff97ce6ec
856]
857[docs/frontends/CLI.rst: changes to formatting (mainly putting commands and filenames in monospace), and to command syntax to reflect that DIRCAP/... is accepted. Clarify the syntax of 'tahoe put' and other minor corrections. Tahoe -> Tahoe-LAFS.
858david-sarah@jacaranda.org**20101212165800
859 Ignore-this: a123ef6b564aa8624d1e79c97068ea12
860]
861[docs/frontends/CLI.rst: Unicode arguments to 'tahoe' work on Windows as of v1.7.1.
862david-sarah@jacaranda.org**20101212063740
863 Ignore-this: 3977a99dfa86ac33a44171deaf43aaab
864]
865[docs/known_issues.rst: fix title and linkify another URL. refs #1225
866david-sarah@jacaranda.org**20101212062817
867 Ignore-this: cc91287f7fb51c23440b3d2fe79c449c
868]
869[docs/known_issues.rst: fix an external link. refs #1225
870david-sarah@jacaranda.org**20101212062435
871 Ignore-this: b8cbf12f353131756c358965c48060ec
872]
873[Fix a link from uri.rst to dirnodes.rst. refs #1225
874david-sarah@jacaranda.org**20101212054502
875 Ignore-this: af6205299f5c9a33229cab259c00f9d5
876]
877[Fix a link from webapi.rst to FTP-and-SFTP.rst. refs #1225
878david-sarah@jacaranda.org**20101212053435
879 Ignore-this: 2b9f88678c3447ea860d6b61e8799858
880]
881[More specific hyperlink to architecture.rst from helper.rst. refs #1225
882david-sarah@jacaranda.org**20101212052607
883 Ignore-this: 50424c768fca481252fabf58424852dc
884]
885[Update hyperlinks between docs, and linkify some external references. refs #1225
886david-sarah@jacaranda.org**20101212051459
887 Ignore-this: cd43a4c3d3de1f832abfa88d5fc4ace1
888]
889[docs/specifications/dirnodes.rst: fix references to mutable.rst. refs #1225
890david-sarah@jacaranda.org**20101212012720
891 Ignore-this: 6819b4b4e06e947ee48b365e840db37d
892]
893[docs/specifications/mutable.rst: correct the magic string for v1 mutable containers. refs #1225
894david-sarah@jacaranda.org**20101212011400
895 Ignore-this: 99a5fcdd40cef83dbb08f323f6cdaaca
896]
897[Move .txt files in docs/frontends and docs/specifications to .rst. refs #1225
898david-sarah@jacaranda.org**20101212010251
899 Ignore-this: 8796d35d928370f7dc6ad2dafdc1c0fe
900]
901[Convert docs/frontends and docs/specifications to reStructuredText format (not including file moves).
902david-sarah@jacaranda.org**20101212004632
903 Ignore-this: e3ceb2d832d73875abe48624ddbb5622
904]
905[scripts/cli.py: remove the disclaimer in the help for 'tahoe cp' that it does not handle non-ASCII filenames well. (At least, we intend to handle them.)
906david-sarah@jacaranda.org**20101130002145
907 Ignore-this: 94c003efaa20b9eb4a83503d79844ca
908]
909[relnotes.txt: fifth -> sixth labor-of-love release
910zooko@zooko.com**20101129045647
911 Ignore-this: 21c245015268b38916e3a138d256c09d
912]
913[Makefile: BB_BRANCH is set to the empty string for trunk, not the string 'trunk'.
914david-sarah@jacaranda.org**20101128233512
915 Ignore-this: 5a7ef8eb10475636d21b91e25b56c369
916]
917[relnotes.txt: eleventh -> twelfth release.
918david-sarah@jacaranda.org**20101128223321
919 Ignore-this: 1e26410156a665271c1170803dea2c0d
920]
921[relnotes.tst: point to known_issues.rst, not known_issues.txt.
922david-sarah@jacaranda.org**20101128222918
923 Ignore-this: 60194eb4544cac446fe4f60b3e34b887
924]
925[quickstart.html: fix link to point to allmydata-tahoe-1.8.1.zip.
926david-sarah@jacaranda.org**20101128221728
927 Ignore-this: 7b3ee86f8256aa12f5d862f689f3ee29
928]
929[TAG allmydata-tahoe-1.8.1
930david-sarah@jacaranda.org**20101128212336
931 Ignore-this: 9c18bdeaef4822f590d2a0d879e00621
932]
933Patch bundle hash:
934bb1cb2c12ad545ed1181282518ba2524f82851d4