8916 Commits

Author SHA1 Message Date
Itamar Turner-Trauring
1a4dcc70e2 Support large mutable uploads in a memory-efficient manner. 2022-12-21 09:24:31 -05:00
Jean-Paul Calderone
6b57b03157 Merge remote-tracking branch 'origin/master' into 3942.missing-authorization-handling 2022-12-21 05:51:39 -05:00
Jean-Paul Calderone
80caf04966
Merge pull request #1234 from tahoe-lafs/3947.mutable-test_version-async-def
Convert some tests for mutables to use `async def`

Fixes: ticket:3947
2022-12-21 05:50:07 -05:00
Itamar Turner-Trauring
1d3464a430 Add end-to-end MDMF test. 2022-12-19 13:37:20 -05:00
Itamar Turner-Trauring
96347e22e2 Make a test demonstrating the problem. 2022-12-15 13:14:49 -05:00
Jean-Paul Calderone
c014ad55b1 remove Python 2 boilerplate 2022-12-14 08:48:02 -05:00
Jean-Paul Calderone
05c7450376 Try to use an upcoming python-cryptography feature to avoid some costs
If the key is the wrong number of bits then we don't care about any other
validation results because we're just going to reject it.  So, check that
before applying other validation, if possible.

This is untested since the version of python-cryptography that supports it is
not released yet and I don't feel like setting up a Rust build tool chain at
the moment.
2022-12-14 08:47:05 -05:00
Itamar Turner-Trauring
6ae40a932d A much more reasonable number of HTTP connections. 2022-12-13 15:54:19 -05:00
Itamar Turner-Trauring
1eba202c08
Merge pull request #1231 from tahoe-lafs/3939-faster-http-protocol
Faster http protocol, part 1 (and maybe faster Foolscap too, while we're at it)

Fixes ticket:3939
2022-12-05 14:05:55 -05:00
Jean-Paul Calderone
daecfc63b9
Merge pull request #1233 from tahoe-lafs/3874.fix-testing-helper-encoding
Fix a testing helper
2022-12-02 10:27:58 -05:00
Jean-Paul Calderone
c542b84637 remove the annotations
everything is broken on older pythons
2022-12-02 08:47:07 -05:00
Jean-Paul Calderone
c6cc3708f4 Fixup the annotations a bit 2022-12-02 08:38:46 -05:00
Jean-Paul Calderone
b40d882fce remove unused import 2022-12-02 08:28:22 -05:00
Jean-Paul Calderone
a84b278ecd support older pythons 2022-12-02 08:26:15 -05:00
Jean-Paul Calderone
9619e286f4 Switch the web testing double to BytesKeyDict
This will catch more str/bytes errors by default than `dict`
2022-12-02 08:16:02 -05:00
meejah
20b3594d12 exarkun wants a helper 2022-12-01 17:05:58 -07:00
meejah
36ed554627 proto -> transport 2022-12-01 17:03:48 -07:00
meejah
3d43cbccc9 log less-specific failures 2022-12-01 17:01:38 -07:00
meejah
c57d1aa8a9 Merge branch 'master' into 3921.exit-on-stdin-close 2022-12-01 16:58:37 -07:00
meejah
7ffcfcdb67
Update src/allmydata/test/test_runner.py
Co-authored-by: Jean-Paul Calderone <exarkun@twistedmatrix.com>
2022-12-01 16:47:40 -07:00
Itamar Turner-Trauring
c93ff23da7 Don't send empty string writes. 2022-12-01 14:54:28 -05:00
Itamar Turner-Trauring
8ed333b171 Correct explanation. 2022-12-01 14:45:45 -05:00
Itamar Turner-Trauring
0ba58070cd Tweaks. 2022-12-01 14:45:39 -05:00
Itamar Turner-Trauring
d4c202307c Better method name. 2022-12-01 14:43:49 -05:00
Itamar Turner-Trauring
17dfda6b5a More direct API. 2022-12-01 14:42:52 -05:00
Fon E. Noel NFEBE
b193ad3ed4 Correct addCleanup reference
Some test_storage.py classes contain calls to cleanup methods
instead of references. This commit fixes that.

Signed-off-by: Fon E. Noel NFEBE <fenn25.fn@gmail.com>
2022-11-30 16:53:22 +01:00
Jean-Paul Calderone
05dfa875a7 Quite a mypy warning about formatting bytes into a string 2022-11-30 09:46:13 -05:00
Jean-Paul Calderone
156954c621 no longer any need to "daisy chain" this value 2022-11-30 09:43:01 -05:00
Jean-Paul Calderone
a11eeaf240 Convert all of the asynchronous functions to use async and await 2022-11-30 09:30:37 -05:00
Jean-Paul Calderone
1acf8604ef Remove the Py2/Py3 compatibility header 2022-11-30 09:30:08 -05:00
Jean-Paul Calderone
5cebe91406 update the module docstring 2022-11-30 09:29:57 -05:00
Jean-Paul Calderone
02aeb68f17 Take care with str vs bytes in the implementation
Also replace the intentional BAD_REQUEST with GONE for this case.
2022-11-29 10:51:07 -05:00
Jean-Paul Calderone
d7fe25f7c7 Correct the assertion about how "not found" should be handled
Behavior verified visually against a live client node:

```
❯ curl -v 'http://localhost:3456/uri/URI:CHK:cmtcxq7hwxvfxan34yiev6ivhy:qvcekmjtoetdcw4kmi7b3rtblvgx7544crnwaqtiewemdliqsokq:1:1:1'
*   Trying 127.0.0.1:3456...
* Connected to localhost (127.0.0.1) port 3456 (#0)
> GET /uri/URI:CHK:cmtcxq7hwxvfxan34yiev6ivhy:qvcekmjtoetdcw4kmi7b3rtblvgx7544crnwaqtiewemdliqsokq:1:1:1 HTTP/1.1
> Host: localhost:3456
> User-Agent: curl/7.83.1
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 410 Gone
< X-Frame-Options: DENY
< Referrer-Policy: no-referrer
< Server: TwistedWeb/22.10.0
< Date: Tue, 29 Nov 2022 15:39:47 GMT
< Content-Type: text/plain;charset=utf-8
< Accept-Ranges: bytes
< Content-Length: 294
< ETag: ui2tnwl5lltj5clzpyff42jdce-
<
NoSharesError: no shares could be found. Zero shares usually indicates a corrupt URI, or that no servers were connected, but it might also indicate severe corruption. You should perform a filecheck on this object to learn more.

The full error message is:
* Connection #0 to host localhost left intact
no shares (need 1). Last failure: None
```
2022-11-29 10:49:20 -05:00
Jean-Paul Calderone
920467dcea Treat missing Authorization as the same as empty Authorization 2022-11-29 10:19:01 -05:00
Jean-Paul Calderone
f5b24d51e9 Add a test for missing Authorization 2022-11-29 10:18:57 -05:00
Itamar Turner-Trauring
06b57cd835 Merge remote-tracking branch 'origin/master' into 3939-faster-http-protocol 2022-11-28 11:07:01 -05:00
Itamar Turner-Trauring
aa80c9ef47 Be more robust. 2022-11-28 10:21:59 -05:00
Itamar Turner-Trauring
3ba166c2cb A bit more robust code. 2022-11-28 10:20:12 -05:00
Itamar Turner-Trauring
0f4dc91295 Refactor so internal attributes needn't leak. 2022-11-28 10:12:08 -05:00
Itamar Turner-Trauring
38d7430c57 Simplify. 2022-11-28 10:03:42 -05:00
Itamar Turner-Trauring
2ab8e3e8d2 Cancel timeout on failures too. 2022-11-28 10:02:56 -05:00
Fon E. Noel NFEBE
6b0fa64236 Clean up test_storage.py after refactor
This PR cleans up errorneous changes resulting from
1d85a2c5cf40a4e52bbb024e2edba4fcd883caa1 and adds a
few improvements such as calling `super` implementations.

Making sure classes with functions returning deferreds
use `AsyncTestCase`

Signed-off-by: Fon E. Noel NFEBE <fenn25.fn@gmail.com>
2022-11-25 13:36:22 +01:00
Itamar Turner-Trauring
41533f162e Not used anymore. 2022-11-23 10:20:32 -05:00
Itamar Turner-Trauring
3790280264 Documentation. 2022-11-23 10:16:49 -05:00
Itamar Turner-Trauring
fd9e50adf1 Simplify _WriteBuffer slightly. 2022-11-23 10:13:18 -05:00
Itamar Turner-Trauring
d1deda5fdd Unit tests for _WriteBuffer. 2022-11-23 10:09:53 -05:00
Itamar Turner-Trauring
7f1d7d4f46 Better explanation. 2022-11-23 09:53:07 -05:00
Itamar Turner-Trauring
d86d578034 Refactor to make core data structure easier to test in isolation. 2022-11-22 15:17:56 -05:00
Itamar Turner-Trauring
f638aec0af Refactor to use BytesIO. 2022-11-22 14:22:54 -05:00
Itamar Turner-Trauring
a4787ca45e Batch writes much more aggressively. 2022-11-22 14:12:14 -05:00