1 patch for repository davidsarah@dev.allmydata.org:/home/darcs/tahoe/trunk: Wed Nov 10 03:36:49 GMT Standard Time 2010 david-sarah@jacaranda.org * test_system.py: test for 'tahoe mv' with the http_proxy and HTTP_PROXY variables set. refs #1253 New patches: [test_system.py: test for 'tahoe mv' with the http_proxy and HTTP_PROXY variables set. refs #1253 david-sarah@jacaranda.org**20101110033649 Ignore-this: a75557ba7589352768d227e2cd37299e ] { hunk ./src/allmydata/test/test_system.py 7 from twisted.trial import unittest from twisted.internet import defer from twisted.internet import threads # CLI tests use deferToThread +from twisted.internet import utils + import allmydata from allmydata import uri from allmydata.storage.mutable import MutableShareFile hunk ./src/allmydata/test/test_system.py 34 from allmydata.test.common import SystemTestMixin +# TODO: move these to common or common_util +from allmydata.test.test_runner import bintahoe, SkipMixin + LARGE_DATA = """ This is some data to publish to the remote grid.., which needs to be large enough to not fit inside a LIT uri. hunk ./src/allmydata/test/test_system.py 55 self.interrupt_after_d.callback(self) return upload.Data.read(self, length) -class SystemTest(SystemTestMixin, unittest.TestCase): +class SystemTest(SystemTestMixin, SkipMixin, unittest.TestCase): timeout = 3600 # It takes longer than 960 seconds on Zandr's ARM box. def test_connections(self): hunk ./src/allmydata/test/test_system.py 1597 d.addCallback(_check_ls_rouri) - d.addCallback(run, "mv", "tahoe-file-stdin", "tahoe-moved") + d.addCallback(run, "mv", "tahoe-file-stdin", "tahoe-moved-first-time") d.addCallback(run, "ls") hunk ./src/allmydata/test/test_system.py 1599 - d.addCallback(_check_ls, ["tahoe-moved"], ["tahoe-file-stdin"]) + d.addCallback(_check_ls, ["tahoe-moved-first-time"], ["tahoe-file-stdin"]) + + def _mv_with_http_proxy(ign): + env = os.environ + env['http_proxy'] = env['HTTP_PROXY'] = "http://127.0.0.0:12345" # invalid address + return self._run_cli_in_subprocess(["mv"] + nodeargs + ["tahoe-moved-first-time", "tahoe-moved"], env=env) + d.addCallback(_mv_with_http_proxy) + + def _check_mv_with_http_proxy(res): + out, err, rc_or_sig = res + self.failUnlessEqual(rc_or_sig, 0, str(res)) + d.addCallback(_check_mv_with_http_proxy) + + d.addCallback(run, "ls") + d.addCallback(_check_ls, ["tahoe-moved"], ["tahoe-moved-firsttime"]) d.addCallback(run, "ln", "tahoe-moved", "newlink") d.addCallback(run, "ls") hunk ./src/allmydata/test/test_system.py 1767 d.addCallback(_done) return d + def _run_cli_in_subprocess(self, argv, env=None): + self.skip_if_cannot_run_bintahoe() + + if env is None: + env = os.environ + d = utils.getProcessOutputAndValue(sys.executable, args=[bintahoe] + argv, + env=env) + return d + def _test_checker(self, res): ut = upload.Data("too big to be literal" * 200, convergence=None) d = self._personal_node.add_file(u"big file", ut) } Context: [test_client.py: change overzealous use of failUnlessReallyEqual on integers back to failUnlessEqual. david-sarah@jacaranda.org**20101109230816 Ignore-this: 6488663c0c9212f548f8b498c42c9d30 ] [misc/build_helpers/show-tool-versions.py: look for zetuptoolz egg in the current directory, not the parent. david-sarah@jacaranda.org**20101107233615 Ignore-this: 6e7081a69584d07d5c38fc9de6749254 ] [misc/build_helpers/show-tool-versions.py: if we can't import pkg_resources, insert the bundled zetuptoolz egg onto sys.path. david-sarah@jacaranda.org**20101106234404 Ignore-this: adb1bd5800129a6c9596f89620146f85 ] [setup.py: fix a bug in the check for whether we are running 'trial' or 'test', that affected zooko's test for #1233. refs #1233 david-sarah@jacaranda.org**20101105235415 Ignore-this: bc79517853f39301218d7d840de830f2 ] [misc/build_helpers/gen-package-table.py: allow all lowercase letters except 'w' (for example, 'c' and 'dev') in package versions. david-sarah@jacaranda.org**20101105154756 Ignore-this: 1189fad2b0d210e2f827bb710f532f7e ] [setup: fix gen-package-table to allow the "_r$REV" version numbers of packages zooko@zooko.com**20101104073944 Ignore-this: b6b72b0d2a207929d4ffb0cfc988e8ee ] [misc/build_helpers/run_trial.py: minor refactoring -- make variable names consistent between run_trial.py and test_runner.py david-sarah@jacaranda.org**20101104012027 Ignore-this: 443fb127ad39015fb2d82bd1beacfa66 ] [NEWS: entry for #1242 (tilde expansion in 'tahoe backup --exclude-from'). refs #1242 david-sarah@jacaranda.org**20101104011915 Ignore-this: 1c85e7c74f5a48b4cdae5aa073c6b9fb ] [tests: make test-with-fake-pkg's unacceptably-old fake pycryptopp be 0.5.13 instead of 0.5.17, since 0.5.17 is acceptably new on non-x86 archs zooko@zooko.com**20101102053357 Ignore-this: a400f6f73c7574f2b2266547b0e7b051 Also move the fakepkgs directory to be in misc/build_helpers/ instead of in the base of the source tree. ] [misc/build_helpers/gen-package-table.py: fix missing 'r's (meant to delete CRs :-) david-sarah@jacaranda.org**20101103043718 Ignore-this: ffa25a18637b6165725a49a79bfa6cc ] [add misc/build_helpers/gen-package-table.py. refs #1247 david-sarah@jacaranda.org**20101103043328 Ignore-this: 3185c869d98d6fecbae4bcc6b74a810d ] [setup: FreeStorm's WinXP-x86-py2.6 buildslave has informed us that there is yet a fourth way to spell "i386" in Python zooko@zooko.com**20101101052142 Ignore-this: 732892975c19f7fd18caeb071f09ef7 ] [setup: add platform.machine() to show-tool-versions, because FreeStorm WinXP builder apparently thinks that its platform.machine() is not one of ['i386', 'x86_64', 'amd64', ''], since it is requiring pycryptopp >= 0.5.14 instead of pycryptopp >= 0.5.20 zooko@zooko.com**20101101042721 Ignore-this: 322a3e5af9785ebca3452f3937ce47a4 ] [edit docs for English usage, rename "Tahoe" to "Tahoe-LAFS" in docs/configuration.rst, rename a variable in bin/tahoe-script.template for clarity, update François's CREDITS entry zooko@zooko.com**20101101042602 Ignore-this: d192c4c9660b1b9173db19d0e533dc22 ] [test_runner.py: fix test failure in test_the_right_code after applying zooko's change to test-with-fake-pkg.py david-sarah@jacaranda.org**20101102035905 Ignore-this: 71b467615ae7dcdfbf84049e60a08933 ] [allmydata/__init__.py: move the call to require_auto_deps() to the top again, since the [4784] patch turned out not to be the cause of the failure on the 'mm netbsd5' buildslave. david-sarah@jacaranda.org**20101101003316 Ignore-this: 879a5188ff2529fb755b6e594c59aeb2 ] [allmydata/__init__.py: put the _auto_deps.require_auto_deps() call back in exactly the same place it was prior to [4784]. david-sarah@jacaranda.org**20101031174649 Ignore-this: c5f4fbb2c444d7b05b1d30a199b6178f ] [allmydata/__init__.py: suppress a DeprecationWarning for the sha module on importing pycrypto. david-sarah@jacaranda.org**20101031160636 Ignore-this: 414d55a0da432cfb0d65329a88e13396 ] [misc/build_helpers/run_trial.py: fix another typo in last patch. david-sarah@jacaranda.org**20101031160332 Ignore-this: 61131c5775a2393b6862f76b7bc222f ] [misc/build_helpers/run_trial.py: fix typo in last patch. david-sarah@jacaranda.org**20101031155215 Ignore-this: a2fbecf858c0a399e938d4f1ade7329b ] [allmydata/__init__.py: call require_auto_deps() after importing nevow and twisted, reverting change in [4784]. Also fix a missing 'warnings.filters.pop()'. david-sarah@jacaranda.org**20101031153828 Ignore-this: 8a5cd7798674d56868e9c333a77a4ac2 ] [misc/build_helpers/run_trial.py: fix false positive on directory check that can occur when running run_trial from test-with-fake-pkg manually. david-sarah@jacaranda.org**20101031153613 Ignore-this: 7d4a0758a305cbfdd296570a9c1a88d2 ] [allmydata.__init__.py: temporary hack to debug failure on midnightmagic's buildslave david-sarah@jacaranda.org**20101031055003 Ignore-this: 2ac28b2f19a436a374399b4c59d29cc7 ] [NEWS: entries for #1190 and #1212, and minor cleanups. refs #1190, #1212 david-sarah@jacaranda.org**20101031051426 Ignore-this: c318dff69296ae1e1a897752b5221870 ] [tahoe backup: perform tilde expansion in exclude-from filename (version 2). fixes #1241 david-sarah@jacaranda.org**20101031035231 Ignore-this: 65e6cd2247dd8d1fc025758d740708c0 ] [NEWS: add news entry for #1223 Francois Deppierraz **20101030111130 Ignore-this: 6b6afd4b0f0527a3c9784c1db95d083 ] [NEWS: add a NEWS entry about bug #1045 Francois Deppierraz **20101030101351 Ignore-this: 7e758afbbd0f1d22a5d0b4fc38661c1d ] [setup: run require_auto_deps() before attempting to import any deps in __init__.py zooko@zooko.com**20101030081035 Ignore-this: ffcaf2450628543e020e9919e455f691 For one thing, this makes missing-dependency failures into DistributionNotFound errors instead of ImportErrors, which might be more useful to the user. For another thing, if someone is using distributions that were installed with --multi-version, then they might be not importable until after require_auto_deps() has been run. (The docs claim that this would be the case, but we don't have an example of this happening at this time.) ] [setup: show-tool-versions: emit module and __version__ information even when module name != distribution (package) name, and add TwistedCore, TwistedWeb, and TwistedConch zooko@zooko.com**20101030070233 Ignore-this: 3df19910090d44502ddeeef5d9c29a7 ] [misc/build_helpers/test-with-fake-pkg.py: look for eggs in the parent of the src directory. refs #1190 david-sarah@jacaranda.org**20101030034303 Ignore-this: 4a3cf286272cdb5d06aac15fb5998b33 ] [scripts/runner.py: fix unused import of allmydata. refs #1190 david-sarah@jacaranda.org**20101030003149 Ignore-this: b2fc67f6192ea7ccf8a5ad010ce74a64 ] [scripts/runner.py: remove pkg_resources.require() calls. These are at best redundant because we have already called _auto_deps.require_auto_deps() (from allmydata.__init__) at that point, and they are causing failure of the test-from-prefixdir step on some buildslaves. refs #1190 david-sarah@jacaranda.org**20101029235328 Ignore-this: e00dee63acc7b76a5755025d75abf524 ] [misc/build_helpers/run_trial.py: look for zetuptoolz egg in the parent directory, not the cwd of run_trial. refs #1190 david-sarah@jacaranda.org**20101029230329 Ignore-this: 1596fb8c290d1c706f079701b1857db8 ] [scripts/tahoe_backup.py: oops, fix missing import, thanks pyflakes Brian Warner **20101029094223 Ignore-this: 285c35af824935641a5be35c008b080c test_cli.py: hush minor pyflakes complaint ] [mutable/servermap.py: update comment. Closes #1231. Brian Warner **20101029091424 Ignore-this: 80bf854123fc254e097a81b82bdf4990 ] [tahoe_cp.py: Don't call urllib.quote with an Unicode argument, fix #1224 Brian Warner **20101029084520 Ignore-this: 5524722d5e5babbb73ca0969d54967f6 tahoe_backup.py: Fix another (potential) occurrence of calling urllib.quote() with an Unicode parameter ] [fix #1223, crash+inefficiency during repair due to read overrun Brian Warner **20101029082036 Ignore-this: e6aa0295ad254544da3b5cc41b33d862 * repairer (really the uploader) reads beyond end of input file (Uploadable) * new-downloader does not tolerate overreads * uploader does lots of tiny reads (inefficient) This fixes the last two. The uploader still does a single overread at the end of the input file, but now that's ok so we can leave it in place. The uploader now expects the Uploadable to behave like a normal disk file (reading beyond EOF will return less data than was asked for), and now the new-downloadable behaves that way. ] [add misc/build_helpers/test-with-fake-pkg.py. refs #1190 david-sarah@jacaranda.org**20101029025150 Ignore-this: 995f220962708f1bad83092161130f67 ] [bundled zetuptoolz: if __main__.__requires__ exists then do not add packages to the working set if they provide an incompatible version of a package. Also put a complete __requires__ listing the transitive closure of dependencies at the beginning of generated scripts, rather than a shallow __requires__ specifying only the application version. refs #1190 david-sarah@jacaranda.org**20101029223111 Ignore-this: a95f1967884340e53bf3adf90db40cfc ] [setup.py, misc/build_helpers/run_trial.py: use undocumented __requires__ variable to cause setuptools/zetuptoolz to put the correct versions of dependencies on sys.path. Also ensure that run_trial adds the bundled zetuptoolz egg at the start of sys.path if present. Make the source directory comparison work correctly for the test-with-fake-pkg build step. refs #1190 david-sarah@jacaranda.org**20101029222825 Ignore-this: 8b09366eb6ce3d55c7db5239077a0fac ] [test_runner.py: fix error in BinTahoe.test_version_no_noise introduced by last patch. refs #1235 david-sarah@jacaranda.org**20101029221123 Ignore-this: 4bf21ea34768e8e6adf104e56f939fd0 ] [test_runner.py: also allow 'from pkg_resources import load_entry_point' as noise. refs #1235. david-sarah@jacaranda.org**20101029204246 Ignore-this: a47440aa2cdd29ce55ac7c6c7f4bcaf2 ] [test_runner.py: if the only noise is 'UserWarning: Unbuilt egg for setuptools', skip instead of failing the no_noise tests. This version avoids 'any' to be compatible with Python < 2.5. refs #1235. david-sarah@jacaranda.org**20101029191804 Ignore-this: 83ca1543fc9673e664a8eeefe1eba429 ] [NEWS: clarify (strengthen) description of what backdoors.rst declares, and add bugfix entries for 'tahoe cp' and Windows console bugs. refs #1216, #1224, #1232 david-sarah@jacaranda.org**20101028180046 Ignore-this: 1c3eef3cd353b06b6ee00ce87c5ef59a ] [startstop_node.py: pyflakes import fix. refs #1190 david-sarah@jacaranda.org**20101028014805 Ignore-this: 369ef5022c8ee5a0d8341af01553bcef ] ['tahoe start': use import+call rather than find+spawn "Brian Warner "**20101027061342 This removes the need to use a locally-built (dependency) bin/twistd, and removes a big chunk of behavior differences between unix and windows. It also happens to resolve the "client node probably started" uncertainty. Might help with #1190, #602, and #71. ] [make ResponseCache smarter to avoid memory leaks: don't record timestamps, use DataSpans to merge entries, and clear the cache when we see a new seqnum. refs #1045, #1229 david-sarah@jacaranda.org**20101027043302 Ignore-this: 88fd6fba7f35a2f8af1693b92718f5f3 ] [windows/fixups.py: limit length of string passed in a single call to WriteConsoleW. fixes #1232. david-sarah@jacaranda.org**20101027021636 Ignore-this: fbd99e0d22493974696d37925d97c7d6 ] [docs/known_issues.rst: Add section on traffic analysis. Fix URL for current version of file. david-sarah@jacaranda.org**20101024234259 Ignore-this: f3416e79d3bb833f5118da23e85723ad ] [test_mutable.py: add test for ResponseCache memory leak. refs #1045, #1129 david-sarah@jacaranda.org**20101024193409 Ignore-this: 3aee7f0677956cc6deaccb4d5b8e415f ] [docs/running.html: fix missing end-quote, and change frontends/ doc references to .rst. david-sarah@jacaranda.org**20101024171500 Ignore-this: 47c645a6595e1790b1d1adfa71af0e1d ] [docs/running.html: 'tahoe create-client' now creates a node with storage disabled. Also change configuration.txt references to configuration.rst. david-sarah@jacaranda.org**20101024170431 Ignore-this: e5b048055494ba3505bb8a506610681c ] [test_encodingutil.py: test_argv_to_unicode modified the wrong encoding variable. fixes #1214 david-sarah@jacaranda.org**20101023035810 Ignore-this: e5f1f849931b96939facc53d93ff61c5 ] [doc: add explanation of the motivation for the surprising and awkward API to erasure coding zooko@zooko.com**20101015060202 Ignore-this: 428913ff6e1bf5b393deffb1f20b949b ] [setup: catch and log ValueError from locale.getdefaultlocale() in show-tool-versions.py zooko@zooko.com**20101015054440 Ignore-this: 827d91490562c32ed7cf6526dfded773 I got a bug report from Mathias Baert showing that locale.getdefaultlocale() raises an exception on his Mac OS X system. Heh. ] [docs: update how-to-make-a-release doc with a few tweaks from the 1.8.0 process zooko@zooko.com**20101015054413 Ignore-this: ca5e9478531a3393792ae283239549dd ] [docs: update NEWS ref: #1216 zooko@zooko.com**20101015053719 Ignore-this: 2e0b92e4145d667cdf075e64b7965530 ] [docs: fix tab-vs-spaces, make some CLI examples /"literal", wrap some to Brian Warner **20101015060606 Ignore-this: eae08bdf0afb19a2fbf41c31e70a8122 80-cols, remove spurious whitespace. Add rst2html.py rule to Makefile. ] [docs: add Peter Secor, Shawn Willden, and Terrell Russell as signatories to docs/backdoors.rst zooko@zooko.com**20101015053242 Ignore-this: c77adf819d664f673e17c4aaeb353f33 ] [docs: convert all .txt docs to .rst thanks to Ravi Pinjala zooko@zooko.com**20101015052913 Ignore-this: 178a5122423189ecfc45b142314a78ec fixes #1225 ] [docs: add statement on our refusal to insert backdoors zooko@zooko.com**20101006051147 Ignore-this: 644d308319a7b80c4434bdff9760404a ] [setup: add --multi-version to the "setup.py develop" command-line zooko@zooko.com**20101005182350 Ignore-this: 709155cc21caff29826b8d41a8c8d63d fixes #530. I earlier tried this twice (see #530 for history) and then twice rolled it back due to some problems that arose. However, I didn't write down what the problems were in enough detail on the ticket that I can tell today whether those problems are still issues, so here goes the third attempt. (I did write down on the ticket that it would not create site.py or .pth files in the target directory with --multi-version mode, but I didn't explain why *that* was a problem.) ] [setup: use execfile to access _auto_deps.py in its proper location of src/allmydata/ instead of copying it into place when setup.py is executed zooko@zooko.com**20100906055714 Ignore-this: c179b42672d775580afad40121f86812 ] [trivial: M-x whitespace-cleanup zooko@zooko.com**20100903144712 Ignore-this: 1bb764d11ac69b4a35ea091cfb13158a ] [minor: remove unused interface declaration, change allmydata.org to tahoe-lafs.org in email address, fix wording in relnotes.txt zooko@zooko.com**20100930153708 Ignore-this: a452969228afed2774de375e29fa3048 ] [immutable/repairer.py: don't use the default happiness setting when repairing Kevan Carstensen **20100927200102 Ignore-this: bd704d9744b970849da8d46a16b8089a ] [NEWS: note dependency updates to pycryptopp and pycrypto. david-sarah@jacaranda.org**20100924191207 Ignore-this: eeaf5c9c9104f24c450c2ec4482ac1ee ] [TAG allmydata-tahoe-1.8.0 zooko@zooko.com**20100924021631 Ignore-this: 494ca0a885c5e20c883845fc53e7ab5d ] Patch bundle hash: 1e152f46a25e26b778daad7b1169c18862dea06b