Ticket #1255: test-1255.darcs.patch

File test-1255.darcs.patch, 19.1 KB (added by davidsarah, at 2010-11-12T02:15:00Z)

test_cli.py: test that 'tahoe mv' reports errors from the DELETE operation. refs #1255

Line 
11 patch for repository davidsarah@dev.allmydata.org:/home/darcs/tahoe/trunk:
2
3Fri Nov 12 01:46:53 GMT Standard Time 2010  david-sarah@jacaranda.org
4  * test_cli.py: test that 'tahoe mv' reports errors from the DELETE operation. refs #1255
5
6New patches:
7
8[test_cli.py: test that 'tahoe mv' reports errors from the DELETE operation. refs #1255
9david-sarah@jacaranda.org**20101112014653
10 Ignore-this: b498a4b185bcb309754052cdcdc3c187
11] hunk ./src/allmydata/test/test_cli.py 1273
12                               "mv moved the wrong thing"))
13         return d
14 
15+    def test_mv_error_if_DELETE_fails(self):
16+        self.basedir = "cli/Mv/mv_error_if_DELETE_fails"
17+        self.set_up_grid()
18+        fn1 = os.path.join(self.basedir, "file1")
19+        DATA1 = "Nuclear launch codes"
20+        fileutil.write(fn1, DATA1)
21+
22+        original_do_http = tahoe_mv.do_http
23+        def mock_do_http(method, url, body=""):
24+            if method == "DELETE":
25+                class FakeResponse:
26+                    def read(self):
27+                        return "response"
28+                resp = FakeResponse()
29+                resp.status = '500 Something Went Wrong'
30+                resp.reason = '*shrug*'
31+                return resp
32+            else:
33+                return original_do_http(method, url, body=body)
34+        tahoe_mv.do_http = mock_do_http
35+
36+        # copy file to the grid
37+        d = self.do_cli("create-alias", "tahoe")
38+        d.addCallback(lambda res:
39+            self.do_cli("cp", fn1, "tahoe:"))
40+
41+        # do mv file1 file2
42+        d.addCallback(lambda res:
43+            self.do_cli("mv", "tahoe:file1", "tahoe:file2"))
44+        def _check( (rc, out, err) ):
45+            self.failIfIn("OK", out, "mv printed 'OK' even though the DELETE failed")
46+            self.failUnlessEqual(rc, 2)
47+        d.addCallback(_check)
48+
49+        def _restore_do_http(res):
50+            tahoe_mv.do_http = original_do_http
51+            return res
52+        d.addBoth(_restore_do_http)
53+        return d
54+
55     def test_mv_without_alias(self):
56         # doing 'tahoe mv' without explicitly specifying an alias or
57         # creating the default 'tahoe' alias should fail with a useful
58
59Context:
60
61[tahoe_mv.py: use do_http, not urllib.openurl, in order to avoid connecting to the webapi server via a proxy. refs #1253
62david-sarah@jacaranda.org**20101110005336
63 Ignore-this: 418b9a1c7873250a35592d3463506540
64]
65[docs: NEWS: merge two additions
66zooko@zooko.com**20101111055851
67 Ignore-this: 13105496bb418ebbd570ba68ef347f2
68]
69[setup: remove separate licensing declaration
70zooko@zooko.com**20101111044530
71 Ignore-this: 2992189602af3ef0a420a1b7273f6344
72 Whenever Free Software/Open Source legal folks are examining the Tahoe-LAFS source code, it seems like there has to be a discussion and documentation about every single licensing declaration. Since this one is (was) permissive, then you would think it could be avoided, but I'm not betting on it. We would probably have to install a copy of the MIT licence into every one of the "copyright" files under the debian/ subdirectory, for example. So: let's just let hashbasedsig.py be licensed the same way as the rest of Tahoe-LAFS.
73]
74[docs: fix error in .rst formatting introduced by renaming Tahoe to Tahoe-LAFS in a header
75zooko@zooko.com**20101111044344
76 Ignore-this: 6f6823891dd22d99e38ebeb9aa57b298
77]
78[docs: NEWS: refs #1253
79zooko@zooko.com**20101111044118
80 Ignore-this: 23d1cfbd2d43a68ca496958b55e4688f
81]
82[docs: added permissions to avoid licence-incompatibility with other Free/Open Source licences
83zooko@zooko.com**20101111043926
84 Ignore-this: 190cff2d0f9e910072bc0705e5e9844c
85]
86[test_system.py: test for 'tahoe mv' with the http_proxy and HTTP_PROXY variables set. refs #1253
87david-sarah@jacaranda.org**20101110033649
88 Ignore-this: a75557ba7589352768d227e2cd37299e
89]
90[test_client.py: change overzealous use of failUnlessReallyEqual on integers back to failUnlessEqual.
91david-sarah@jacaranda.org**20101109230816
92 Ignore-this: 6488663c0c9212f548f8b498c42c9d30
93]
94[misc/build_helpers/show-tool-versions.py: look for zetuptoolz egg in the current directory, not the parent.
95david-sarah@jacaranda.org**20101107233615
96 Ignore-this: 6e7081a69584d07d5c38fc9de6749254
97]
98[misc/build_helpers/show-tool-versions.py: if we can't import pkg_resources, insert the bundled zetuptoolz egg onto sys.path.
99david-sarah@jacaranda.org**20101106234404
100 Ignore-this: adb1bd5800129a6c9596f89620146f85
101]
102[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
103david-sarah@jacaranda.org**20101105235415
104 Ignore-this: bc79517853f39301218d7d840de830f2
105]
106[misc/build_helpers/gen-package-table.py: allow all lowercase letters except 'w' (for example, 'c' and 'dev') in package versions.
107david-sarah@jacaranda.org**20101105154756
108 Ignore-this: 1189fad2b0d210e2f827bb710f532f7e
109]
110[setup: fix gen-package-table to allow the "_r$REV" version numbers of packages
111zooko@zooko.com**20101104073944
112 Ignore-this: b6b72b0d2a207929d4ffb0cfc988e8ee
113]
114[misc/build_helpers/run_trial.py: minor refactoring -- make variable names consistent between run_trial.py and test_runner.py
115david-sarah@jacaranda.org**20101104012027
116 Ignore-this: 443fb127ad39015fb2d82bd1beacfa66
117]
118[NEWS: entry for #1242 (tilde expansion in 'tahoe backup --exclude-from'). refs #1242
119david-sarah@jacaranda.org**20101104011915
120 Ignore-this: 1c85e7c74f5a48b4cdae5aa073c6b9fb
121]
122[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
123zooko@zooko.com**20101102053357
124 Ignore-this: a400f6f73c7574f2b2266547b0e7b051
125 Also move the fakepkgs directory to be in misc/build_helpers/ instead of in the base of the source tree.
126]
127[misc/build_helpers/gen-package-table.py: fix missing 'r's (meant to delete CRs :-)
128david-sarah@jacaranda.org**20101103043718
129 Ignore-this: ffa25a18637b6165725a49a79bfa6cc
130]
131[add misc/build_helpers/gen-package-table.py. refs #1247
132david-sarah@jacaranda.org**20101103043328
133 Ignore-this: 3185c869d98d6fecbae4bcc6b74a810d
134]
135[setup: FreeStorm's WinXP-x86-py2.6 buildslave has informed us that there is yet a fourth way to spell "i386" in Python
136zooko@zooko.com**20101101052142
137 Ignore-this: 732892975c19f7fd18caeb071f09ef7
138]
139[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
140zooko@zooko.com**20101101042721
141 Ignore-this: 322a3e5af9785ebca3452f3937ce47a4
142]
143[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
144zooko@zooko.com**20101101042602
145 Ignore-this: d192c4c9660b1b9173db19d0e533dc22
146]
147[test_runner.py: fix test failure in test_the_right_code after applying zooko's change to test-with-fake-pkg.py
148david-sarah@jacaranda.org**20101102035905
149 Ignore-this: 71b467615ae7dcdfbf84049e60a08933
150]
151[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.
152david-sarah@jacaranda.org**20101101003316
153 Ignore-this: 879a5188ff2529fb755b6e594c59aeb2
154]
155[allmydata/__init__.py: put the _auto_deps.require_auto_deps() call back in exactly the same place it was prior to [4784].
156david-sarah@jacaranda.org**20101031174649
157 Ignore-this: c5f4fbb2c444d7b05b1d30a199b6178f
158]
159[allmydata/__init__.py: suppress a DeprecationWarning for the sha module on importing pycrypto.
160david-sarah@jacaranda.org**20101031160636
161 Ignore-this: 414d55a0da432cfb0d65329a88e13396
162]
163[misc/build_helpers/run_trial.py: fix another typo in last patch.
164david-sarah@jacaranda.org**20101031160332
165 Ignore-this: 61131c5775a2393b6862f76b7bc222f
166]
167[misc/build_helpers/run_trial.py: fix typo in last patch.
168david-sarah@jacaranda.org**20101031155215
169 Ignore-this: a2fbecf858c0a399e938d4f1ade7329b
170]
171[allmydata/__init__.py: call require_auto_deps() after importing nevow and twisted, reverting change in [4784]. Also fix a missing 'warnings.filters.pop()'.
172david-sarah@jacaranda.org**20101031153828
173 Ignore-this: 8a5cd7798674d56868e9c333a77a4ac2
174]
175[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.
176david-sarah@jacaranda.org**20101031153613
177 Ignore-this: 7d4a0758a305cbfdd296570a9c1a88d2
178]
179[allmydata.__init__.py: temporary hack to debug failure on midnightmagic's buildslave
180david-sarah@jacaranda.org**20101031055003
181 Ignore-this: 2ac28b2f19a436a374399b4c59d29cc7
182]
183[NEWS: entries for #1190 and #1212, and minor cleanups. refs #1190, #1212
184david-sarah@jacaranda.org**20101031051426
185 Ignore-this: c318dff69296ae1e1a897752b5221870
186]
187[tahoe backup: perform tilde expansion in exclude-from filename (version 2). fixes #1241
188david-sarah@jacaranda.org**20101031035231
189 Ignore-this: 65e6cd2247dd8d1fc025758d740708c0
190]
191[NEWS: add news entry for #1223
192Francois Deppierraz <francois@ctrlaltdel.ch>**20101030111130
193 Ignore-this: 6b6afd4b0f0527a3c9784c1db95d083
194]
195[NEWS: add a NEWS entry about bug #1045
196Francois Deppierraz <francois@ctrlaltdel.ch>**20101030101351
197 Ignore-this: 7e758afbbd0f1d22a5d0b4fc38661c1d
198]
199[setup: run require_auto_deps() before attempting to import any deps in __init__.py
200zooko@zooko.com**20101030081035
201 Ignore-this: ffcaf2450628543e020e9919e455f691
202 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.)
203]
204[setup: show-tool-versions: emit module and __version__ information even when module name != distribution (package) name, and add TwistedCore, TwistedWeb, and TwistedConch
205zooko@zooko.com**20101030070233
206 Ignore-this: 3df19910090d44502ddeeef5d9c29a7
207]
208[misc/build_helpers/test-with-fake-pkg.py: look for eggs in the parent of the src directory. refs #1190
209david-sarah@jacaranda.org**20101030034303
210 Ignore-this: 4a3cf286272cdb5d06aac15fb5998b33
211]
212[scripts/runner.py: fix unused import of allmydata. refs #1190
213david-sarah@jacaranda.org**20101030003149
214 Ignore-this: b2fc67f6192ea7ccf8a5ad010ce74a64
215]
216[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
217david-sarah@jacaranda.org**20101029235328
218 Ignore-this: e00dee63acc7b76a5755025d75abf524
219]
220[misc/build_helpers/run_trial.py: look for zetuptoolz egg in the parent directory, not the cwd of run_trial. refs #1190
221david-sarah@jacaranda.org**20101029230329
222 Ignore-this: 1596fb8c290d1c706f079701b1857db8
223]
224[scripts/tahoe_backup.py: oops, fix missing import, thanks pyflakes
225Brian Warner <warner@lothar.com>**20101029094223
226 Ignore-this: 285c35af824935641a5be35c008b080c
227 
228 test_cli.py: hush minor pyflakes complaint
229]
230[mutable/servermap.py: update comment. Closes #1231.
231Brian Warner <warner@lothar.com>**20101029091424
232 Ignore-this: 80bf854123fc254e097a81b82bdf4990
233]
234[tahoe_cp.py: Don't call urllib.quote with an Unicode argument, fix #1224
235Brian Warner <warner@lothar.com>**20101029084520
236 Ignore-this: 5524722d5e5babbb73ca0969d54967f6
237 tahoe_backup.py: Fix another (potential) occurrence of calling urllib.quote()
238 with an Unicode parameter
239]
240[fix #1223, crash+inefficiency during repair due to read overrun
241Brian Warner <warner@lothar.com>**20101029082036
242 Ignore-this: e6aa0295ad254544da3b5cc41b33d862
243 
244 * repairer (really the uploader) reads beyond end of input file (Uploadable)
245 * new-downloader does not tolerate overreads
246 * uploader does lots of tiny reads (inefficient)
247 
248 This fixes the last two. The uploader still does a single overread at the end
249 of the input file, but now that's ok so we can leave it in place. The
250 uploader now expects the Uploadable to behave like a normal disk
251 file (reading beyond EOF will return less data than was asked for), and now
252 the new-downloadable behaves that way.
253]
254[add misc/build_helpers/test-with-fake-pkg.py. refs #1190
255david-sarah@jacaranda.org**20101029025150
256 Ignore-this: 995f220962708f1bad83092161130f67
257]
258[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
259david-sarah@jacaranda.org**20101029223111
260 Ignore-this: a95f1967884340e53bf3adf90db40cfc
261]
262[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
263david-sarah@jacaranda.org**20101029222825
264 Ignore-this: 8b09366eb6ce3d55c7db5239077a0fac
265]
266[test_runner.py: fix error in BinTahoe.test_version_no_noise introduced by last patch. refs #1235
267david-sarah@jacaranda.org**20101029221123
268 Ignore-this: 4bf21ea34768e8e6adf104e56f939fd0
269]
270[test_runner.py: also allow 'from pkg_resources import load_entry_point' as noise. refs #1235.
271david-sarah@jacaranda.org**20101029204246
272 Ignore-this: a47440aa2cdd29ce55ac7c6c7f4bcaf2
273]
274[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.
275david-sarah@jacaranda.org**20101029191804
276 Ignore-this: 83ca1543fc9673e664a8eeefe1eba429
277]
278[NEWS: clarify (strengthen) description of what backdoors.rst declares, and add bugfix entries for 'tahoe cp' and Windows console bugs. refs #1216, #1224, #1232
279david-sarah@jacaranda.org**20101028180046
280 Ignore-this: 1c3eef3cd353b06b6ee00ce87c5ef59a
281]
282[startstop_node.py: pyflakes import fix. refs #1190
283david-sarah@jacaranda.org**20101028014805
284 Ignore-this: 369ef5022c8ee5a0d8341af01553bcef
285]
286['tahoe start': use import+call rather than find+spawn
287"Brian Warner <warner@lothar.com>"**20101027061342
288 
289 This removes the need to use a locally-built (dependency) bin/twistd, and
290 removes a big chunk of behavior differences between unix and windows. It
291 also happens to resolve the "client node probably started" uncertainty.
292 Might help with #1190, #602, and #71.
293]
294[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
295david-sarah@jacaranda.org**20101027043302
296 Ignore-this: 88fd6fba7f35a2f8af1693b92718f5f3
297]
298[windows/fixups.py: limit length of string passed in a single call to WriteConsoleW. fixes #1232.
299david-sarah@jacaranda.org**20101027021636
300 Ignore-this: fbd99e0d22493974696d37925d97c7d6
301]
302[docs/known_issues.rst: Add section on traffic analysis. Fix URL for current version of file.
303david-sarah@jacaranda.org**20101024234259
304 Ignore-this: f3416e79d3bb833f5118da23e85723ad
305]
306[test_mutable.py: add test for ResponseCache memory leak. refs #1045, #1129
307david-sarah@jacaranda.org**20101024193409
308 Ignore-this: 3aee7f0677956cc6deaccb4d5b8e415f
309]
310[docs/running.html: fix missing end-quote, and change frontends/ doc references to .rst.
311david-sarah@jacaranda.org**20101024171500
312 Ignore-this: 47c645a6595e1790b1d1adfa71af0e1d
313]
314[docs/running.html: 'tahoe create-client' now creates a node with storage disabled. Also change configuration.txt references to configuration.rst.
315david-sarah@jacaranda.org**20101024170431
316 Ignore-this: e5b048055494ba3505bb8a506610681c
317]
318[test_encodingutil.py: test_argv_to_unicode modified the wrong encoding variable. fixes #1214
319david-sarah@jacaranda.org**20101023035810
320 Ignore-this: e5f1f849931b96939facc53d93ff61c5
321]
322[doc: add explanation of the motivation for the surprising and awkward API to erasure coding
323zooko@zooko.com**20101015060202
324 Ignore-this: 428913ff6e1bf5b393deffb1f20b949b
325]
326[setup: catch and log ValueError from locale.getdefaultlocale() in show-tool-versions.py
327zooko@zooko.com**20101015054440
328 Ignore-this: 827d91490562c32ed7cf6526dfded773
329 I got a bug report from Mathias Baert showing that locale.getdefaultlocale() raises an exception on his Mac OS X system. Heh.
330]
331[docs: update how-to-make-a-release doc with a few tweaks from the 1.8.0 process
332zooko@zooko.com**20101015054413
333 Ignore-this: ca5e9478531a3393792ae283239549dd
334]
335[docs: update NEWS ref: #1216
336zooko@zooko.com**20101015053719
337 Ignore-this: 2e0b92e4145d667cdf075e64b7965530
338]
339[docs: fix tab-vs-spaces, make some CLI examples <tt>/"literal", wrap some to
340Brian Warner <warner@lothar.com>**20101015060606
341 Ignore-this: eae08bdf0afb19a2fbf41c31e70a8122
342 80-cols, remove spurious whitespace. Add rst2html.py rule to Makefile.
343]
344[docs: add Peter Secor, Shawn Willden, and Terrell Russell as signatories to docs/backdoors.rst
345zooko@zooko.com**20101015053242
346 Ignore-this: c77adf819d664f673e17c4aaeb353f33
347]
348[docs: convert all .txt docs to .rst thanks to Ravi Pinjala
349zooko@zooko.com**20101015052913
350 Ignore-this: 178a5122423189ecfc45b142314a78ec
351 fixes #1225
352]
353[docs: add statement on our refusal to insert backdoors
354zooko@zooko.com**20101006051147
355 Ignore-this: 644d308319a7b80c4434bdff9760404a
356]
357[setup: add --multi-version to the "setup.py develop" command-line
358zooko@zooko.com**20101005182350
359 Ignore-this: 709155cc21caff29826b8d41a8c8d63d
360 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.)
361]
362[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
363zooko@zooko.com**20100906055714
364 Ignore-this: c179b42672d775580afad40121f86812
365]
366[trivial: M-x whitespace-cleanup
367zooko@zooko.com**20100903144712
368 Ignore-this: 1bb764d11ac69b4a35ea091cfb13158a
369]
370[minor: remove unused interface declaration, change allmydata.org to tahoe-lafs.org in email address, fix wording in relnotes.txt
371zooko@zooko.com**20100930153708
372 Ignore-this: a452969228afed2774de375e29fa3048
373]
374[immutable/repairer.py: don't use the default happiness setting when repairing
375Kevan Carstensen <kevan@isnotajoke.com>**20100927200102
376 Ignore-this: bd704d9744b970849da8d46a16b8089a
377]
378[NEWS: note dependency updates to pycryptopp and pycrypto.
379david-sarah@jacaranda.org**20100924191207
380 Ignore-this: eeaf5c9c9104f24c450c2ec4482ac1ee
381]
382[TAG allmydata-tahoe-1.8.0
383zooko@zooko.com**20100924021631
384 Ignore-this: 494ca0a885c5e20c883845fc53e7ab5d
385]
386Patch bundle hash:
38722a15278ca2d655d9fde4b0f9c5d13f44c563cab