Commit Graph

6435 Commits

Author SHA1 Message Date
Itamar Turner-Trauring
dab690a757 Flake fixes. 2020-08-06 16:13:10 -04:00
Itamar Turner-Trauring
9669e4eaa7 Drop int. 2020-08-06 16:12:26 -04:00
Maciej Fijalkowski
9b9d530155 Fix some typos. Add docstring 2020-08-06 16:07:50 +02:00
Maciej Fijalkowski
b71ae461a6 use less hacks in yaml tests 2020-08-06 16:06:01 +02:00
Maciej Fijalkowski
57fdd9f6b4 s/unicode/str/ (from future.builtins import str kind of str) 2020-08-06 15:11:41 +02:00
Itamar Turner-Trauring
70851fe753 Death to newint. 2020-08-05 11:53:23 -04:00
Itamar Turner-Trauring
11c7841cd7
Merge pull request #760 from tahoe-lafs/3364.crypto-python-3
Fixes ticket:3364

Port allmydata.crypto to Python 3
2020-08-05 11:26:30 -04:00
Itamar Turner-Trauring
0bef1eb4e2 Support prefix that is bytes. 2020-08-05 11:25:40 -04:00
Itamar Turner-Trauring
ff7cf4d731 Test improvements. 2020-08-04 15:15:32 -04:00
Itamar Turner-Trauring
ce33101d08 Remove unused import. 2020-08-04 15:03:06 -04:00
Maciej Fijalkowski
d8bcbb901e I think default mode is text 2020-08-04 12:26:43 +02:00
Maciej Fijalkowski
d53f67bc41 add assert for write_atomically 2020-08-04 11:15:32 +02:00
Itamar Turner-Trauring
2a623e0b05 Port to Python 3. 2020-08-03 14:13:16 -04:00
Itamar Turner-Trauring
622ed2f971 Standalone logging tests, most of them new, and an attempt to fix the parent
msgid logic so it's a little less broken.
2020-08-03 14:09:28 -04:00
Itamar Turner-Trauring
02daa12031 Move logging tests into their own, Python 3-compatible, module. 2020-08-03 11:33:29 -04:00
Itamar Turner-Trauring
1703230a2a Use nummedobj from pyutil. 2020-08-03 11:33:21 -04:00
Itamar Turner-Trauring
bfbca87f26 Missing from previous PR. 2020-08-03 11:31:02 -04:00
Itamar Turner-Trauring
24729dbd61 Port to Python 3. 2020-08-03 11:06:46 -04:00
Itamar Turner-Trauring
cd50ac434a Port to Python 3. 2020-08-03 10:59:51 -04:00
Itamar Turner-Trauring
5815547661 Remove an unnecessary conversion that breaks Python 3. 2020-08-03 10:58:37 -04:00
Itamar Turner-Trauring
3330737656 Be a bit stricter about expected outputs. 2020-08-03 10:56:47 -04:00
Itamar Turner-Trauring
34e3052814 Don't use global state for testing. 2020-08-03 10:43:21 -04:00
Maciej Fijalkowski
c178c55178 remove this import 2020-08-02 12:03:59 +02:00
Maciej Fijalkowski
bf37413e05 address the review (mostly) 2020-08-02 11:16:18 +02:00
Jean-Paul Calderone
27b6737eaf
Merge remote-tracking branch 'origin/master' into 3358.fileutil-to-python-3
with fijal
2020-07-30 13:38:47 -04:00
Maciej Fijalkowski
ecb3ee023d add a dummy commit 2020-07-30 09:36:11 +02:00
Maciej Fijalkowski
7618b295cb Revert "merge master (I think properly)"
This reverts commit 6140b5ff52, reversing
changes made to da87bd7e7f.
2020-07-30 09:29:20 +02:00
Maciej Fijalkowski
6140b5ff52 merge master (I think properly) 2020-07-29 21:09:23 +02:00
Itamar Turner-Trauring
5e308260b1 Port to Python 3. 2020-07-29 14:49:48 -04:00
Itamar Turner-Trauring
0a1e365ed1 Tests for gcutil. 2020-07-29 14:46:49 -04:00
Itamar Turner-Trauring
9c16a0554e Get rid of unused code. 2020-07-29 14:38:58 -04:00
Maciej Fijalkowski
bfead0630d leave a comment explaining why we removed open 2020-07-29 19:56:29 +02:00
Maciej Fijalkowski
724bf7de75 remove open from imported builtins 2020-07-29 19:56:01 +02:00
Itamar Turner-Trauring
9e4eda6912
Merge pull request #756 from tahoe-lafs/3359.statistics-python-3
Port statistics and dictutil to Python 3

Fixes ticket:3359
2020-07-29 13:16:17 -04:00
Maciej Fijalkowski
93c474c39b make test_util pass under both pythons 2020-07-29 09:00:50 +02:00
Sajith Sasidharan
951250f9ff Remove unused FAVICON_MARKUP 2020-07-28 16:13:58 -04:00
Sajith Sasidharan
4007fb4de7 Rearrange imports 2020-07-28 16:12:48 -04:00
Itamar Turner-Trauring
17b15ae085 Add another test. 2020-07-28 11:25:34 -04:00
Itamar Turner-Trauring
e954314fe5 Don't expose Python 3 dicts to innocent, unsuspecting Python 2 code. 2020-07-28 11:23:40 -04:00
Itamar Turner-Trauring
9ca1fdef81 Note it's ported. 2020-07-28 11:12:17 -04:00
Itamar Turner-Trauring
8c9c691c02 Fix typo. 2020-07-28 11:11:27 -04:00
Itamar Turner-Trauring
cc494e3d39 Document that API returns native strings. 2020-07-28 11:11:05 -04:00
Itamar Turner-Trauring
4dae5d867c Add retry logic, listenOnUnused is potentially flaky. 2020-07-28 11:09:02 -04:00
Sajith Sasidharan
0f28a93879 Remove unused import 2020-07-28 08:08:48 -04:00
Sajith Sasidharan
fb5f9f0c89 Merge 'origin/master' into 3316.check-results-nevow-to-twisted-web 2020-07-28 07:54:21 -04:00
Sajith Sasidharan
ca6cf887f7 Test JSON rendering synchronously 2020-07-28 07:26:11 -04:00
Sajith Sasidharan
1b7a35e773 Do not strip tags where it is not necessary 2020-07-28 07:18:57 -04:00
Sajith Sasidharan
e6867a1355 Use docstring to describe a class 2020-07-28 07:15:39 -04:00
Sajith Sasidharan
adca146a1b Use space as separator when removing tags 2020-07-28 07:10:44 -04:00
Sajith Sasidharan
80802a74cd Use BeautifulSoup to remove tags 2020-07-28 06:53:52 -04:00
Sajith Sasidharan
9f5c58c173 Use super() 2020-07-28 06:27:40 -04:00
Itamar Turner-Trauring
cbbe260a4e Windows doesn't like Unicode strings in os.environ in Python 2.7. 2020-07-27 16:19:36 -04:00
Itamar Turner-Trauring
94d489ff46 Fix trailing whitespace. 2020-07-27 16:01:12 -04:00
Itamar Turner-Trauring
79ae478a48 Port to Python 3. 2020-07-27 15:56:31 -04:00
Itamar Turner-Trauring
bde2f1394d Move dictutil tests out. 2020-07-27 15:53:26 -04:00
Itamar Turner-Trauring
2ca223a67c Port to Python 3. 2020-07-27 15:34:28 -04:00
Itamar Turner-Trauring
8d84be77d8 Port to Python 3. 2020-07-27 15:31:31 -04:00
Itamar Turner-Trauring
b140d1f1af Move statistics tests out. 2020-07-27 15:29:01 -04:00
Itamar Turner-Trauring
d8bf811b92 Native string all the things. 2020-07-27 15:20:35 -04:00
Itamar Turner-Trauring
74fe9ccf56 Foolscap expects a native string. 2020-07-27 15:16:34 -04:00
Itamar Turner-Trauring
ce8a575808 Test for specific ports. 2020-07-27 15:16:25 -04:00
Itamar Turner-Trauring
d91b4f0e40 Fix some tests and flake issues. 2020-07-27 15:12:09 -04:00
Itamar Turner-Trauring
361e75804c Merge remote-tracking branch 'origin/master' into 3356.iputil-python-3 2020-07-27 13:07:12 -04:00
Itamar Turner-Trauring
817355d17e Minimal testing for listenOnUnused. 2020-07-27 13:06:41 -04:00
Itamar Turner-Trauring
e681ca1cb9
Merge pull request #754 from tahoe-lafs/3357.version_checks-py3
Port version_checks to Python 3

Fixes ticket:3357
2020-07-27 12:36:28 -04:00
Itamar Turner-Trauring
9919d2c9a7 Record port status. 2020-07-27 11:46:03 -04:00
Itamar Turner-Trauring
436c2e77e4 Automated port to Python 3. 2020-07-27 11:44:58 -04:00
Itamar Turner-Trauring
fce7221481 Some steps to manually port to Python 3. 2020-07-27 11:42:20 -04:00
Itamar Turner-Trauring
1f34e62987 Port test module to Python 3. 2020-07-27 11:14:01 -04:00
Maciej Fijalkowski
13e292295e Revert "futurize and make the tests pass back under py2"
This reverts commit 361de05980.
2020-07-25 11:22:03 +02:00
Maciej Fijalkowski
361de05980 futurize and make the tests pass back under py2 2020-07-25 11:12:43 +02:00
Itamar Turner-Trauring
bf13401979 Move SignalMixin to common_py3.py. 2020-07-24 14:58:08 -04:00
Itamar Turner-Trauring
025afc1efe Merge branch '3357.version_checks-py3' into 3356.iputil-python-3 2020-07-24 14:50:50 -04:00
Itamar Turner-Trauring
11cd30c425 Merge remote-tracking branch 'origin/master' into 3357.version_checks-py3 2020-07-24 14:50:39 -04:00
Itamar Turner-Trauring
e80f138868 Fix indent. 2020-07-24 14:48:56 -04:00
Itamar Turner-Trauring
e0d3e46683 Merge remote-tracking branch 'origin/master' into 3351.spans-python-3 2020-07-24 14:48:33 -04:00
Itamar Turner-Trauring
4c6a9a5610 Merge branch '3357.version_checks-py3' into 3356.iputil-python-3 2020-07-24 14:36:31 -04:00
Itamar Turner-Trauring
337a4381bb Finish port to Python 3. 2020-07-24 14:31:36 -04:00
Itamar Turner-Trauring
65500de72f Merge remote-tracking branch 'origin/master' into 3346.abbreviate-and-time_format-py3 2020-07-24 14:13:28 -04:00
Itamar Turner-Trauring
f84d51d795 Port to Python 3. 2020-07-24 14:12:10 -04:00
Itamar Turner-Trauring
04db52b9e4 Some manual tweaks to be more likely to work with Python 3.
The Linux distribution porting code was obsolete (using Python APIs not present
in Python 3, /etc/lsb-release isn't a thing on Fedora 31, for example), so
replaced it with maintained third-party library.
2020-07-24 14:06:12 -04:00
Itamar Turner-Trauring
45a891114b Fix some things that prevent Python 3 imports. 2020-07-24 13:48:11 -04:00
Itamar Turner-Trauring
135ade02b1 Start porting. 2020-07-24 13:47:56 -04:00
Itamar Turner-Trauring
8bcd6dd34b
Merge branch 'master' into 3346.abbreviate-and-time_format-py3 2020-07-24 11:10:38 -04:00
Itamar Turner-Trauring
38648c0f8f
Fix indentation 2020-07-24 11:09:08 -04:00
Itamar Turner-Trauring
dd4737f20c
Merge branch 'master' into 3353.observer-and-pipeline-py3 2020-07-24 11:08:08 -04:00
Itamar Turner-Trauring
d23394b35c Merge remote-tracking branch 'origin/master' into 3346.abbreviate-and-time_format-py3 2020-07-23 12:27:06 -04:00
Itamar Turner-Trauring
ab4393b50e Document unicode. 2020-07-23 11:49:02 -04:00
Itamar Turner-Trauring
cab1b02ba2 Use constants, since we have them. 2020-07-23 11:47:12 -04:00
Itamar Turner-Trauring
b0083e342b Document being ported. 2020-07-23 11:47:06 -04:00
Itamar Turner-Trauring
eb688dfd7e Fix lint. 2020-07-22 13:22:50 -04:00
Itamar Turner-Trauring
64e4af2d05 Port to Python 3. 2020-07-22 13:17:49 -04:00
Itamar Turner-Trauring
15254d08fc A few more explicit byte strings. 2020-07-22 13:11:05 -04:00
Itamar Turner-Trauring
85c8ca6d77 Merge branch '3344.netstring-and-hashutil-to-python-3' into 3354.hashtree-to-python-3 2020-07-22 13:09:58 -04:00
Itamar Turner-Trauring
5129e1ef14 Explicitly mark bytestrings. 2020-07-22 13:08:24 -04:00
Itamar Turner-Trauring
e48aecfa1a Move parsing tests to better location, and fix them. 2020-07-22 12:55:16 -04:00
Itamar Turner-Trauring
0763f9f90b Port to Python 3. 2020-07-22 10:36:50 -04:00
Itamar Turner-Trauring
e427163ec8 Move pipeline tests into their own module. 2020-07-22 10:33:23 -04:00
Itamar Turner-Trauring
b4e6686211 Port to Python 3. 2020-07-22 10:29:44 -04:00
Itamar Turner-Trauring
2f608e8216 Merge remote-tracking branch 'origin/master' into 3346.abbreviate-and-time_format-py3 2020-07-22 10:11:27 -04:00
Itamar Turner-Trauring
51e9c2183c Add missing file. 2020-07-22 10:00:15 -04:00
Itamar Turner-Trauring
2391bd9733 Merge remote-tracking branch 'origin/master' into 3351.spans-python-3 2020-07-22 09:57:08 -04:00
Itamar Turner-Trauring
e9eb93468f Finish port to Python 3. 2020-07-22 09:56:59 -04:00
Itamar Turner-Trauring
3a8bafafc3 Merge remote-tracking branch 'origin/master' into 3344.netstring-and-hashutil-to-python-3 2020-07-22 09:36:34 -04:00
Itamar Turner-Trauring
ab24e9abb1 Manual porting to Python 3. 2020-07-21 15:14:52 -04:00
Itamar Turner-Trauring
d6f24af424 Move span tests into their own module. 2020-07-21 15:14:39 -04:00
Itamar Turner-Trauring
fa567841b5 Merge remote-tracking branch 'origin/master' into 3342-base32-and-base62-to-python-3 2020-07-21 14:40:33 -04:00
Itamar Turner-Trauring
6de05941b9 Remove unnecessary imports. 2020-07-21 14:27:08 -04:00
Itamar Turner-Trauring
4018b772a3 Port abbreviate.py. As far as I can tell, all division is already float division. 2020-07-21 14:15:39 -04:00
Itamar Turner-Trauring
116f232e80 Port time_format to Python 3. 2020-07-21 14:08:31 -04:00
Itamar Turner-Trauring
7e8de10ea3 Merge branch '3342-base32-and-base62-to-python-3' into 3344.netstring-and-hashutil-to-python-3 2020-07-21 14:00:53 -04:00
Itamar Turner-Trauring
c229ba7196 Workaround future/pypy incompatibility. 2020-07-21 13:55:53 -04:00
meejah
30a91a1106 public RSA exponent 17 -> 65537 2020-07-21 00:29:35 -06:00
Sajith Sasidharan
e145c7b00d
Merge pull request #722 from sajith/3254.status-status-nevow-to-twisted-web
Replace nevow with twisted.web.template in status.Status

Fixes: ticket:3254
2020-07-20 11:28:18 -04:00
Sajith Sasidharan
26ca9ae724
Merge pull request #726 from sajith/3313.operations-ophandle-table-nevow-to-twisted
Replace nevow with twisted.web in operations.OphandleTable

Fixes: ticket:3313
2020-07-19 08:14:32 -04:00
Sajith Sasidharan
c58cf56e83 Remove unused imports 2020-07-18 08:34:25 -04:00
Sajith Sasidharan
0f835e94f5 Merge 'origin/master' into 3254.status-status-nevow-to-twisted-web 2020-07-18 07:53:36 -04:00
Sajith Sasidharan
6dec821271
Merge pull request #720 from sajith/3288.status-download-nevow-to-twisted-web
Replace nevow with twisted.web.template in status.DownloadStatusPage

Fixes: ticket:3288
2020-07-18 07:22:37 -04:00
Sajith Sasidharan
879a8012a0 Remove unused import 2020-07-18 06:48:36 -04:00
Sajith Sasidharan
c198c006e3 Avoid over-long lines 2020-07-17 21:02:24 -04:00
Sajith Sasidharan
fe07ab39da Use docstrings 2020-07-17 16:22:23 -04:00
Sajith Sasidharan
c14197e1bc Make FakeDownloadStatus an instance of DownloadStatus
The real DownloadStatus is easy enough to instantiate.  Might as well
use that, cutting some crufty code here.
2020-07-17 16:13:07 -04:00
Sajith Sasidharan
293efd7c9f Use actual status counter number when testing 2020-07-17 13:50:06 -04:00
Sajith Sasidharan
8fd0cf7eb6 Add a test for checking status page links 2020-07-17 13:21:53 -04:00
Sajith Sasidharan
828ec53e24 Update status page test case
Link to upload status 0 should contain `/status/` prefix, or it will
navigate to `/up-0` instead of `/status/up-0`, resulting in a 404 not
found message.  Same with other statuses too.
2020-07-17 13:21:53 -04:00
Sajith Sasidharan
5c886b1b2d Format link to status page child node correctly
Some Nevow-ism accidentally escaped earlier: link to `/status/up-0`
and so on were actually rendered as `/up-0` and so on.
2020-07-17 13:21:53 -04:00
Sajith Sasidharan
2d19c383ca Rename a variable for clarity 2020-07-17 13:21:53 -04:00
Sajith Sasidharan
02d8bd061a Test for trailing slashes after /status/
Both `/status` and `/status/` are treated alike; any additional
trailing slashes will be rejected.
2020-07-17 13:21:53 -04:00
Sajith Sasidharan
372cc00a25 Reject non-existent child nodes of /status
Requests on both `/status` and `/status/` will be served with the same
status page, but `/status//`, `/status///` and so on will be processed
further down, resulting in a 40x response.
2020-07-17 09:46:21 -04:00
Sajith Sasidharan
fe165cc99d Do the right thing, not the simple thing
Seems that NixOS CI is saying that the simple thing is not the right
thing: "GET /status/down-0" etc all resulted in 404 responses on
NixOS.  So we perhaps should use the actual counter value.
2020-07-16 19:07:51 -04:00
Sajith Sasidharan
06c8bbfb19 Use clearer names for tests 2020-07-16 17:25:25 -04:00
Sajith Sasidharan
66dd2d3658 Use docstrings 2020-07-16 17:19:50 -04:00
Sajith Sasidharan
8db60e3486 Do the simple thing when testing status subpaths 2020-07-16 17:16:18 -04:00
Sajith Sasidharan
95642ae02c Use a helper to check status subpath results 2020-07-16 17:13:36 -04:00
Sajith Sasidharan
e48d930621 Clarify intention of a test case 2020-07-16 16:56:41 -04:00
Sajith Sasidharan
6a2ce9efc6 Use docstrings 2020-07-16 16:55:12 -04:00
Itamar Turner-Trauring
a4620bf176 Automated port of the test module. 2020-07-16 15:58:39 -04:00
Itamar Turner-Trauring
4c047b90e5 Manual steps of port to Python 3. 2020-07-16 15:46:23 -04:00
Itamar Turner-Trauring
e90d1f38d2 Make TimezoneMixin importable on Python 3. 2020-07-16 15:44:41 -04:00
Itamar Turner-Trauring
554be90b7e Unnecessary code, and was triggering flake8. 2020-07-16 15:27:36 -04:00
Itamar Turner-Trauring
72272cbf0b Move out tests for time_format. 2020-07-16 15:15:26 -04:00
Itamar Turner-Trauring
545848f164 Move abbreviate tests into their own module. 2020-07-16 14:57:09 -04:00
Itamar Turner-Trauring
4da8e2ddee Merge branch '3342-base32-and-base62-to-python-3' into 3344.netstring-and-hashutil-to-python-3 2020-07-16 14:42:09 -04:00
Itamar Turner-Trauring
8d143af43e Another assertion. 2020-07-16 14:40:30 -04:00
Itamar Turner-Trauring
2f693c47f9 Don't leak variable on Python 2. 2020-07-16 14:37:26 -04:00
Itamar Turner-Trauring
efbae9b3e3 Hard code some known values, generated on the master branch preceding these
changes.
2020-07-16 14:33:53 -04:00
Itamar Turner-Trauring
7abc54c429 Merge remote-tracking branch 'origin/master' into 3342-base32-and-base62-to-python-3 2020-07-16 14:21:42 -04:00
Jean-Paul Calderone
0ce6e562cb
Merge pull request #742 from chadwhitacre/3325.add-py36-to-ci
Add py36 to CI

Fixes: ticket:3325
2020-07-15 20:11:39 -04:00
Jean-Paul Calderone
c493396148
Merge pull request #740 from tahoe-lafs/3340-unused-code-in-util
Delete some dead code.

Fixes: ticket:3340
2020-07-15 20:08:41 -04:00
Sajith Sasidharan
80bf5f0a53 Remove an unused import 2020-07-15 19:19:51 -04:00
Sajith Sasidharan
7f93e28a7c Parameterize classes used in check/repair tests 2020-07-15 18:43:52 -04:00
Sajith Sasidharan
2d7095866a Expand "deep check and repair results" page test 2020-07-15 17:10:48 -04:00
Sajith Sasidharan
a13ec344b9 Correct usage of SlotsSequenceElement 2020-07-15 17:10:41 -04:00
Sajith Sasidharan
8fedbd52c2 Expand "deep check and repair" test 2020-07-15 16:58:39 -04:00
Sajith Sasidharan
6969366370 Document, use, and test "join pathstring" method 2020-07-15 16:40:05 -04:00
Sajith Sasidharan
589e143a4a Add an empty renderer 2020-07-15 16:24:11 -04:00
Sajith Sasidharan
e6eb866cef Add missing "header" renderer
It does not do much here, but it is good to be consistent
2020-07-15 16:21:46 -04:00
Sajith Sasidharan
b5a465cc8d Format "all objects" table correctly 2020-07-15 16:20:36 -04:00
Sajith Sasidharan
07c24dbe59 Add a missing super() call 2020-07-15 16:14:10 -04:00
Itamar Turner-Trauring
6af32fdfa7 Make sure the public API exposes native bytes, not Future bytes. 2020-07-15 15:59:46 -04:00
Itamar Turner-Trauring
ed6e1cb7ef Fix formatting. 2020-07-15 15:51:09 -04:00
Itamar Turner-Trauring
ed8b10c12f Finish porting to Python 3. 2020-07-15 15:00:29 -04:00
Itamar Turner-Trauring
4800992de6 Type check assertions. 2020-07-15 14:58:58 -04:00
Itamar Turner-Trauring
fa5b5fa436 Manual part of port to Python 3. 2020-07-15 14:55:56 -04:00
Sajith Sasidharan
69afd292c2 Use a different format for path
Seems that _join_pathstring() is the wrong thing to use here.
2020-07-15 13:43:50 -04:00
Sajith Sasidharan
3c079bef73 Expand "deep check results" test 2020-07-15 13:35:22 -04:00
Sajith Sasidharan
f547509332 Use table headers correctly 2020-07-15 13:24:32 -04:00
Sajith Sasidharan
ddfe20c8ab Use SlotsSequenceElement correctly 2020-07-15 13:24:20 -04:00
Itamar Turner-Trauring
bb7d31c5e4 Futurize part of port to Python 3. 2020-07-15 11:19:57 -04:00
Itamar Turner-Trauring
60a1a24423 Manual portion of port to Python 3. 2020-07-15 11:13:59 -04:00
Itamar Turner-Trauring
e3e29598e4 A couple of missing explicit byte strings. 2020-07-15 11:13:52 -04:00
Itamar Turner-Trauring
cfb11f7f4c More explicit testing of types. 2020-07-15 11:08:06 -04:00
Itamar Turner-Trauring
093125ca43 Port to Python 3. 2020-07-15 11:05:23 -04:00
Itamar Turner-Trauring
d316ad3ebd A more explicit test. 2020-07-15 11:02:49 -04:00
Itamar Turner-Trauring
2b89674052 Everything must be bytes. 2020-07-15 11:01:45 -04:00
Itamar Turner-Trauring
9ed91eabb3 Split out hashutil tests into their own module. 2020-07-15 10:58:05 -04:00
Sajith Sasidharan
1ed722494c Add a FakeServer class for testing 2020-07-15 10:35:56 -04:00
Sajith Sasidharan
6322404b1e Update "deep check results renderer" test 2020-07-14 21:44:41 -04:00
Sajith Sasidharan
99ce9ff198 Correct argument to SlotsSequenceElement 2020-07-14 21:42:28 -04:00
Sajith Sasidharan
ef26d66e79 Use correct twisted web template directives 2020-07-14 20:50:12 -04:00
Sajith Sasidharan
b4b820ed7b Use a helper method to get monitor counter 2020-07-14 20:47:23 -04:00
Itamar Turner-Trauring
3688291df2 Handy way to run Python 3 tests, until the ratchet is going. 2020-07-14 13:53:26 -04:00
Itamar Turner-Trauring
5fd01523cf This module is not a thing. 2020-07-14 13:53:13 -04:00
Itamar Turner-Trauring
21a9ffef7a Not strings. 2020-07-14 13:46:12 -04:00
Itamar Turner-Trauring
a81e859b82 Fix flake error. 2020-07-14 13:44:56 -04:00
Itamar Turner-Trauring
27d8eb47fc Test improvements. 2020-07-14 13:44:00 -04:00
Itamar Turner-Trauring
db41d5af6f
Merge pull request #743 from tahoe-lafs/3342-more-tests-for-base32-base62
Fixes https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3343
2020-07-14 13:41:20 -04:00
Itamar Turner-Trauring
e0adb3b37d Port to Python 3. 2020-07-14 13:35:46 -04:00
Itamar Turner-Trauring
b5db85afbe Initial, manual steps of Python 3 port. 2020-07-14 11:53:40 -04:00
Itamar Turner-Trauring
3abb9e9db4 Rip out a whole bunch of code, either deleting or replacing with stdlib's base32 implementation. 2020-07-14 11:45:05 -04:00
Itamar Turner-Trauring
f3db64ad74 Port to Python 3. 2020-07-14 11:29:09 -04:00
Itamar Turner-Trauring
ab3737d686 Note this module has been ported to Python 3. 2020-07-14 11:28:51 -04:00
Itamar Turner-Trauring
9c428be0e2 Port base62 to Python 3. 2020-07-14 11:24:45 -04:00
Itamar Turner-Trauring
b1e732fb9a Port test_base62 to Python 3. 2020-07-14 10:34:53 -04:00
Itamar Turner-Trauring
e34a01d547 A couple more asserts. 2020-07-14 10:28:22 -04:00
Itamar Turner-Trauring
459d68118c Merge branch '3342-more-tests-for-base32-base62' into 3342-base32-and-base62-to-python-3 2020-07-14 10:26:46 -04:00
Itamar Turner-Trauring
f378edd9d8 Fix missing import. 2020-07-14 10:20:51 -04:00
Sajith Sasidharan
54e952ceda Test for 404 responses from status page subpaths 2020-07-14 09:01:31 -04:00
Chad Whitacre
329bfe05f9 Make a crucial relative import explicit 2020-07-13 22:27:59 -04:00
Sajith Sasidharan
abd539588f Rename nested functions for clarity
... and also to remove embarrassing copy-pasta mistakes.
2020-07-13 20:52:12 -04:00
Sajith Sasidharan
b48556c2cb Add tests for status subpages
Coverage tests for the coverage gods
2020-07-13 20:44:30 -04:00
Itamar Turner-Trauring
ead2a79cf7 Everything should be bytes. 2020-07-13 16:21:15 -04:00
Itamar Turner-Trauring
6464e226c6 Hypothesis-based roundtrip test. 2020-07-13 16:19:48 -04:00
Itamar Turner-Trauring
828e6bc28a Minimal tests for could_be_base32_encoded(). 2020-07-13 16:18:13 -04:00
Itamar Turner-Trauring
77ae087c77 Remove a2b_l and b2a_l from public API, to ease likely future switch to stdlib
base64's implementation.
2020-07-13 16:12:53 -04:00
Itamar Turner-Trauring
e23dbcdf56 Document current public API. 2020-07-13 15:41:01 -04:00
Itamar Turner-Trauring
bbfd39e6c0 Test larger variety of inputs using hypothesis. 2020-07-13 15:30:11 -04:00
Itamar Turner-Trauring
a8a7d48c12 Everything must be bytes. 2020-07-13 15:25:07 -04:00
Itamar Turner-Trauring
f27cba181e Move existing base32 tests out of test_util.py. 2020-07-13 15:22:03 -04:00
Itamar Turner-Trauring
1a3a1ffcaa Restore eliot code. 2020-07-13 14:33:13 -04:00
Itamar Turner-Trauring
af916c3968
Merge branch 'master' into 3341-more-python-3-utils 2020-07-13 14:30:11 -04:00
Sajith Sasidharan
144001f380 Use a better assert in status subpath test 2020-07-11 08:30:39 -04:00
Sajith Sasidharan
6eba2fb2e6 Test "deep check results" page
These are some basic tests -- let's see if this improves test
coverage, and by how much.
2020-07-11 07:59:28 -04:00
Sajith Sasidharan
b49a3eaf3a Check for a non-standard property on request 2020-07-10 21:46:23 -04:00
Sajith Sasidharan
267b89ae5b Remove unused import 2020-07-10 16:34:16 -04:00
Sajith Sasidharan
69ae9e6d32 Merge 'origin/master' into 3316.check-results-nevow-to-twisted-web 2020-07-10 16:33:06 -04:00
Sajith Sasidharan
f9dc2509de Test "deep check and repair" page 2020-07-10 08:00:04 -04:00
Sajith Sasidharan
427f99621f Do more null checks 2020-07-10 06:56:29 -04:00
Sajith Sasidharan
d4a02aa1cd Remove a print statement 2020-07-09 17:14:55 -04:00
Sajith Sasidharan
5276ea5b37 Merge branch 'master' into 3254.status-status-nevow-to-twisted-web 2020-07-09 17:09:50 -04:00
Sajith Sasidharan
956c2c535d Remove unused import 2020-07-09 17:09:12 -04:00
Sajith Sasidharan
a56d077d3d Test HTML document generated by web.status.Status 2020-07-09 16:59:04 -04:00
Sajith Sasidharan
8331e7d8ec Remove now-unnecessary UploadResultsPage.render_UPLOAD 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
44ecfdad09 Make UploadResultsPage a Resource 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
62e803db25 Make UploadStatusPage a Resource 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
38fe7dd3f5 Remove unused import 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
f30dcc7ec6 Make Element the superclass of UploadResultsRendererMixin 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
4b560d10cc Move time formatter tests
UploadResultsRendererMixin no longer has render_time(); moving tests
for render_time() as tests for abbreviate_time() to a more appropriate
place.
2020-07-09 16:05:31 -04:00
Sajith Sasidharan
9c14eec1e0 Avoid use of RateAndTimeMixin in UploadResultsRendererMixin 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
118ea4267c Render abbreviated rate and time values 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
c0d83def22 Document UploadResultsPage parameter 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
0af8df7203 Document UploadStatusPage 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
855668b188 Remove unused imports 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
a0655c18d6 Handle "t=upload" in UploadResultsPage POST handling 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
6b4d27bec1 Use twisted web template in UploadResultsRendererMixin 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
2ab7b15f8b Make UploadResultsPage a MultiFormatResource 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
71fd4f5d10 Use twisted template tags in upload results page template 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
e6f0f9d038 Make UploadStatusPage a MultiFormatResource 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
d24babe873 Use twisted template tags in upload status page template 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
96fbff684f Use an inner JSONRequest class with renderJSON
Once nevow is removed from web/common.py, we can simplify
renderJSON(), like so:

  def renderJSON():
      req = Request()
      req.args = {"t": ["json"]}
      req.fields = {}
      return resource.render(req)

But for now we have to live with an inner class that implements the
nevow.inevow.IRequest interface.
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
92e83f268b Declare JSON request interface using @implementer
"zope.interface.implements(IRequest)" is deprectated in favor of
"@zope.interface.implementer(IRequest)" decorator.
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
d449306b19 Use DummyRequest in storage tests
Using twisted.web.server.Request causes test_new_style_classes to
fail like so:

  Traceback (most recent call last):
  Failure: testtools.testresult.real._StringException: Traceback (most recent call last):
    File ".tox/coverage/lib/python2.7/site-packages/allmydata/test/test_python2_regressions.py", line 69, in test_new_style_classes
      "Expected to find no classic classes.",
    File ".tox/coverage/lib/python2.7/site-packages/testtools/testcase.py", line 502, in assertThat
      raise mismatch_error
  testtools.matchers._impl.MismatchError: !=:
  reference = set([])
  actual    = set([<class allmydata.test.test_storage.JSONRequest at 0x7fd938040bb0>])
  : Expected to find no classic classes.

Seems that `DummyRequest` is an acceptable new style class.
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
6b61b75658 Refactor storage test helpers
Rewrite `renderSynchronously()` to use `renderDeferred()`
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
bdfa667a22 Add docstrings to storage test helpers 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
7e26dd42e9 Remove redundant render_json() method 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
6379601722 Wrap renderer results in tags 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
0af744610f Avoid using nevow FakeRequest in storage test.
Use twisted.web.server.Request instead, with a DummyChannel.

There's still one line of inevitable nevow now, because of code in
web/common.py; but that should be easily replaceable once we switch
that over.
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
de5d04ab79 Remove an extraneous directive
`t:data` is not really a Twisted template directive.  Added my
mistake, removing now.
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
a056f18ca9 Remove StorageStatus.renderHTTP
This was added to please the test suite. Pleased to remove it!
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
a6e6c5cee0 Get rid of WebRenderingMixin in storage test 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
8d31791940 Use a helper to exercise render() in storage test cases 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
7126d3247c Prefix member variable with "_" 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
0d9ec2b206 Use slots to render storage stats table 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
9dd9d98b8c Give the suite the precise string it wants 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
1469af0f3b Use BeautifulSoup to check favicon in storage page 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
56e2fa3f24 Use <t:transparent> to render node nickname and id
CI did not like the old way, but it passed in my system.  Odd.
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
0bd386384e Mark format_recovered as static method 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
bc8a86e106 Use Unicode strings to render space 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
0b4c235fbd Remove redundant None-checks on self.storage
When no storage is up, `storage_running()` renderer will return a big
honking `no storage server running` message, and no further renderers
will be invoked.  Therefore the extra defense is probably not
required.

(I tested this hypothesis.  The extra defense is not required, unless
there's something I have not seen.)
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
db0e6407dc Use successResultOf in renderSynchronously
Get rid of [].append trick when dealing with the deferred.
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
ee8e730727 Move renderSynchronously to test suite 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
92f6e4bfe5 Use explicit None-check on self.storage 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
affe10b3e9 Return result from renderHTTP
Bogus renderHTTP, but test failures are now down to three. We just
need to handle requests for JSON now.
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
6b5e530cb3 Add a docstring 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
abb8834be1 Rename function for clarity 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
e67fa7cd95 Add docstrings to StorageStatusElement 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
ac9a73eddb Use parentheses in test suite's import statement 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
62a997ce20 Use parentheses in import statement 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
1be736e4d1 Fix test_storage.WebStatus.test_no_server failure 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
8dd4029428 Use <t:transparent /> within table cells 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
6ccb9d29cb Use render_space methods to render space 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
dbc6b2afa0 Drop unused ctx argument from render_space methods 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
d5af7c0d2e Refactor so that test_util pass 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
923219e54a Use right syntax for twisted.web.template tags 2020-07-09 16:05:29 -04:00
Sajith Sasidharan
42c3e276a3 Check storage server status before using it 2020-07-09 16:05:29 -04:00
Sajith Sasidharan
d1f17e1019 Second version of renderSynchronously 2020-07-09 16:05:29 -04:00
Sajith Sasidharan
805b880c2e Add missing flattenString import 2020-07-09 16:05:29 -04:00
Sajith Sasidharan
75488c4aff Add StorageStatus::renderSynchronously
Related to ticket:3247

test_storage.py wants a `StorageStatus::renderSynchronously()` method
and a `StorageStatus::renderHTTP()` method.  Let us begin with the
goofy first-cut.

Both these methods are not only wrong, but they will also not please
the test suite.  However error messages produced in CI can be shared,
and that way I can hopefully get unstuck.
2020-07-09 16:05:29 -04:00
Sajith Sasidharan
aad3557d2b Use twisted.web.template in web/storage.py
Related to ticket:3247.  Nevow usage has been removed, and generated
page looks the same as its former self, but tests are failing because
test_storage.py assumes that we're using nevow.
2020-07-09 16:05:29 -04:00
meejah
7a37eeee67 assert -> Exception 2020-07-09 16:05:29 -04:00
meejah
5cfb350771 streap -> stream 2020-07-09 16:05:29 -04:00
meejah
1f4b619fda unused imports 2020-07-09 16:05:29 -04:00
meejah
77a2f11694 more-testtools-y asserts 2020-07-09 16:05:29 -04:00
meejah
1ce760b237 testtool's asserts 2020-07-09 16:05:29 -04:00
meejah
26d7a3a957 Get rid of ?replace= handling entirely and more-correctly support /uri variants 2020-07-09 16:05:29 -04:00
meejah
e0287a7bfe use attr.s 2020-07-09 16:05:29 -04:00
meejah
af70911e2f embetter docstring 2020-07-09 16:05:29 -04:00
meejah
d91996aa82 better docstring 2020-07-09 16:05:29 -04:00
meejah
eaf96b22fe replciate Tahoe's behavior for replace=true/false 2020-07-09 16:05:29 -04:00
meejah
a3f4cc6983 symbols, not magic-numbers 2020-07-09 16:05:29 -04:00
meejah
0f6b4c33ac match query args 2020-07-09 16:05:29 -04:00
meejah
66f61c514b assert -> ValueError 2020-07-09 16:05:29 -04:00
meejah
bd858f8fef assert -> raise 2020-07-09 16:05:29 -04:00
meejah
835341f2c2 more docstring 2020-07-09 16:05:29 -04:00
meejah
6fd0d61d5e comment 2020-07-09 16:05:29 -04:00
meejah
10715fa26b docstring 2020-07-09 16:05:29 -04:00
meejah
9420777810 cleanup, docstrings 2020-07-09 16:05:29 -04:00
meejah
e481e37beb housekeeping 2020-07-09 16:05:29 -04:00
meejah
9d5e438c2d use real parser 2020-07-09 16:05:29 -04:00
meejah
683c8d3e4f actually returns CREATED for new data 2020-07-09 16:05:29 -04:00
meejah
b01995f158 use hypothesis -- which doesn't know about Deferred, so need testtools too 2020-07-09 16:05:29 -04:00
meejah
0cc020b5f2 copyright, header 2020-07-09 16:05:29 -04:00
meejah
1710530b6b key -> kind 2020-07-09 16:05:29 -04:00
meejah
c0ce716430 handle more inputs in test body-producer 2020-07-09 16:05:29 -04:00
meejah
02a663c244 new-style classes only 2020-07-09 16:05:29 -04:00
meejah
18b62bf746 unused imports 2020-07-09 16:05:29 -04:00
meejah
05140a5881 simple test of testing/web 2020-07-09 16:05:29 -04:00
meejah
66116020fb simplify tahoe web fakes 2020-07-09 16:05:29 -04:00
meejah
95531fa729 synchronous-only up/download tahoe code to keep treq.testing happy 2020-07-09 16:05:29 -04:00
meejah
ab7936db56 actual usable agent 2020-07-09 16:05:29 -04:00
meejah
6e2285ed2c proof-of-concept verified-fake for testing 2020-07-09 16:05:29 -04:00
Sajith Sasidharan
b956d9a58c Decode name before null check
Make the diff against master a tad bit smaller.
2020-07-09 16:05:29 -04:00
Sajith Sasidharan
fccc331671 Make "Refresh" link work
This seems to be a subtle difference from nevow: with `href="."`,
rendered link target will be `/uri/`, so clicking "Refresh" will
result in an error message like so: "GET /uri requires uri=".

With `href=""`, the rendered link target will be `/uri/URI:...`, which
is what we need.
2020-07-09 16:05:29 -04:00
Sajith Sasidharan
378b20c51a Reject trailing empty path piece in URIs 2020-07-09 16:05:29 -04:00
Sajith Sasidharan
d3d0d02855 Reject URIs that contain empty segments 2020-07-09 16:05:29 -04:00
Sajith Sasidharan
5892eae580 Render self in DirectoryNodeHandler.getChild()
We need self.render_POST() etc. to be invoked when we have a request
such as "POST /uri/URI:DIR:..."; throwing an error here is probably
not the right thing to do.
2020-07-09 16:05:29 -04:00
Sajith Sasidharan
7444d6b7a9 Correct arguments to super()
This was incidentally found when looking at some test failures:
super(type, object) is the right invocation, and not the other way
around.
2020-07-09 16:05:29 -04:00
Sajith Sasidharan
4dd6c86950 Use twisted web directives in web.operations.ReloadMixin 2020-07-09 16:05:28 -04:00
Itamar Turner-Trauring
1e41df9f48 Add to list of ported modules. 2020-07-09 14:38:07 -04:00
Sajith Sasidharan
2e160c1526 Test for failure caused by invalid path
A hyphen is expected when rendering /status page child nodes:
"/status/up" is wrong; "/status/up-0" is right.
2020-07-09 14:37:37 -04:00
Sajith Sasidharan
54248f334e Use WebError, not RuntimeError, to indicate error
Several problems with using RuntimeError to signal error here:

- It dumps a rather unhelpful webpage at the user.
- The exception backtrace on Tahoe console is not quite necessary here.
- It really is not a runtime error: it is just an expected failure.
- But mainly, testing for RuntimeError is harder.
2020-07-09 14:35:14 -04:00
Itamar Turner-Trauring
7d1fdd8284 Port modules to Python 3. 2020-07-09 14:32:16 -04:00
Itamar Turner-Trauring
0cf1117165 Move the tests for deferredutil into their own module. 2020-07-09 14:20:12 -04:00
Itamar Turner-Trauring
e108ecb4b0 Fix lint. 2020-07-09 13:56:25 -04:00
Itamar Turner-Trauring
af86066eab Delete some dead code. 2020-07-09 13:52:06 -04:00
Itamar Turner-Trauring
12d5131568 Fix pyflakes issues. 2020-07-09 13:12:30 -04:00
Sajith Sasidharan
7bee9ff540 Untabify again 2020-07-08 13:56:52 -04:00
Sajith Sasidharan
4d22390b59 Untabify 2020-07-08 13:29:01 -04:00
Sajith Sasidharan
51d6307b45 Fail better when timings data isn't available 2020-07-08 13:08:35 -04:00
Sajith Sasidharan
112cfc1da5 Test if download status page can be rendered partially 2020-07-08 13:08:35 -04:00
Sajith Sasidharan
c187e2752b Parameterize FakeDownloadResults and FakeDownloadStatus 2020-07-08 13:08:35 -04:00
Itamar Turner-Trauring
9e3bc3e888 These tests are no longer necessary, since we are no longer implementing this
code ourselves.

Before deleting the tests I ensured they either passed, or the failure were due
to slightly different string formatting in pyutil's assertutil.

As such I believe pyutil has the same behavior.
2020-07-08 12:16:26 -04:00
Itamar Turner-Trauring
bd6ff36b2f Fix typo. 2020-07-08 12:13:24 -04:00
Itamar Turner-Trauring
939648c04f Add back missing function. 2020-07-08 12:13:19 -04:00
Itamar Turner-Trauring
229583c596 Switch to mathutil from pyutil (it has tests, and has already been ported to
Python 3).
2020-07-08 12:02:58 -04:00
Itamar Turner-Trauring
016c7754a6 Switch to use pyutil's assertutil implementation. 2020-07-08 11:57:10 -04:00
Sajith Sasidharan
81216f18bf Remove some whitespace 2020-07-08 10:15:33 -04:00
Sajith Sasidharan
d6ea30b935 Test more markup rendered by DownloadStatusElement 2020-07-07 22:20:49 -04:00
Sajith Sasidharan
0db56f99cf Add some tests for DownloadStatusElement 2020-07-07 20:49:58 -04:00
Sajith Sasidharan
7757756a41 Use correct tag type 2020-07-07 20:45:30 -04:00
Sajith Sasidharan
0c4d24a2ac Avoid use of deferred within an Element
This causes the final HTML to be rendered funny, with a bunch of
"<Deferred current result=...>", which is clearly not what we want.
2020-07-07 20:24:56 -04:00
Sajith Sasidharan
7877d8a5cc Use an accessor 2020-07-07 19:55:14 -04:00
Itamar Turner-Trauring
3d0e4df5ce Lint fixes. 2020-07-07 11:30:01 -04:00
Itamar Turner-Trauring
e06d41442a Merge remote-tracking branch 'origin/master' into 3324-humanreadable-python-3 2020-07-07 11:03:33 -04:00
Sajith Sasidharan
a3bf4e0269 Remove an unused import 2020-07-06 20:18:22 -04:00
Sajith Sasidharan
e6eb387707 Remove status.RateAndTimeMixin
Both UploadResultsRenderer and DownloadResultsRenderer do not use
RateAndTimeMixin anymore: safe to remove it now.

Tests for methods formerly in RateAndTimeMixin have been moved to
test.web.test_util: specifically test_abbreviate_rate() and
test_abbreviate_time().
2020-07-06 17:11:30 -04:00
Sajith Sasidharan
4a47e8311f Merge 'origin/master' into 3288.status-download-nevow-to-twisted-web 2020-07-06 16:38:23 -04:00
Sajith Sasidharan
25f5e659fc
Merge pull request #721 from sajith/3287.status-upload-nevow-to-twisted-web
Replace nevow with twisted.web.template in status.UploadStatusPage

Fixes: ticket:3287
2020-07-06 16:20:40 -04:00
Sajith Sasidharan
61aef4caef
Merge pull request #690 from sajith/3247.storage-py-neovw-to-twt
Use twisted.web.template in web/storage.py

Fixes: ticket:3247
2020-07-06 16:18:34 -04:00
Itamar Turner-Trauring
f548593f37 Fix test_python3, and mark these two modules as being ported as well. 2020-07-06 14:18:18 -04:00
Itamar Turner-Trauring
b990334104 Add the builtins import to make Python 2 builtins match Python 3's. 2020-07-06 14:00:02 -04:00
Itamar Turner-Trauring
83b9bbf743 Switch definitely to _python3.py for listing modules, but also note if a module
has been ported in its docstring.
2020-07-03 13:28:36 -04:00
Itamar Turner-Trauring
140cb80ff7 Clarify comment. 2020-07-03 13:15:57 -04:00
Itamar Turner-Trauring
12691eb597 Only install module mappings once. 2020-07-02 14:31:33 -04:00
Itamar Turner-Trauring
ad7f44db99 Listed ported modules. 2020-07-02 14:27:43 -04:00
Itamar Turner-Trauring
70a029fb81 Tests pass on both Python 2 and Python 3. 2020-07-02 14:26:35 -04:00
Itamar Turner-Trauring
c207a0c932 Port test_humanreadable.py to Python 3. 2020-07-02 14:10:38 -04:00
Itamar Turner-Trauring
99b62775e9 Initial list of ported modules. 2020-07-02 13:42:30 -04:00
Itamar Turner-Trauring
b7f88b278f Split out tests for humanreadable into their own module, so we can port just
humanreadable.py in isolation.
2020-07-02 13:40:40 -04:00
meejah
ffd24b9c7f
Merge pull request #728 from meejah/ticket3317-verified-fakes
Ticket 3317: start of verified fakes
2020-06-30 19:40:39 +00:00
meejah
80359e02e6 assert -> Exception 2020-06-30 08:17:34 -06:00
meejah
a9f4210014 streap -> stream 2020-06-30 08:15:58 -06:00
Sajith Sasidharan
f9e864c51c Use simpler syntax to update map 2020-06-24 08:15:18 -04:00
Sajith Sasidharan
88d3fa7415 Remove now-unnecessary UploadResultsPage.render_UPLOAD 2020-06-23 21:54:23 -04:00
Sajith Sasidharan
dfbb8e7743 Make UploadResultsPage a Resource 2020-06-23 21:53:39 -04:00
Sajith Sasidharan
6ab7f26faf Make UploadStatusPage a Resource 2020-06-23 21:28:31 -04:00
Sajith Sasidharan
00e852c465 Make DownloadStatus an object
PythonTwoRegressions.test_new_style_classes would be unhappy without
this.
2020-06-23 20:54:49 -04:00
Sajith Sasidharan
36ecd8f384 Use render_GET()
Implementing `render_METHOD()` is preferred over overriding render()
2020-06-23 20:54:49 -04:00
Sajith Sasidharan
b14c0a0495 Make DownloadStatusPage a Resource
No need of this being a MultiFormatResource, because it renders just
HTML.
2020-06-23 20:54:49 -04:00
meejah
aedc58ef51 unused imports 2020-06-19 17:22:42 -06:00
meejah
f0ac5a2cef more-testtools-y asserts 2020-06-19 17:19:30 -06:00
meejah
57eb875354 testtool's asserts 2020-06-19 17:16:39 -06:00
meejah
ef71fc2bfc Get rid of ?replace= handling entirely and more-correctly support /uri variants 2020-06-19 17:15:01 -06:00
Sajith Sasidharan
982ad8942e Comment about nevow.url usage in web.operations.OphandleTable 2020-06-18 18:30:18 -04:00
Sajith Sasidharan
2d2e8a5872 Add comments to web.operations.OphandleTable 2020-06-18 18:29:39 -04:00
Sajith Sasidharan
bbee23b493 Rename a parameter for clarity
"context" is nevow terminology, whereas these are really requests.
2020-06-18 18:29:39 -04:00
Sajith Sasidharan
5ec78641db Make web.operations.OphandleTable a twisted web Resource 2020-06-18 18:29:27 -04:00
Sajith Sasidharan
6f8af688dd Rearrange imports 2020-06-18 18:01:18 -04:00
Sajith Sasidharan
dfb477a2b1 Remove unused import 2020-06-17 22:09:50 -04:00
Sajith Sasidharan
e121cc0a84 Use the right names
Missed this in testing because this code was not reached in testing.
2020-06-17 22:09:50 -04:00
Sajith Sasidharan
4f213e93be Remove an unused variable 2020-06-17 22:04:08 -04:00
Sajith Sasidharan
0483fc91c1 Remove unused import 2020-06-17 22:04:08 -04:00
Sajith Sasidharan
c3440ce213 Use a helper to query monitor counters 2020-06-17 21:53:11 -04:00
Sajith Sasidharan
47f9147e16 Rename a class for consistency's sake 2020-06-17 21:46:40 -04:00
Sajith Sasidharan
fe1b0cb7ed Rename class variables 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
22977352bb Document parameters of ResultsRenderer classes 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
79be795566 Remove unused want_json() 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
23a51117d2 Rename r to check_results 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
fae4f44404 Prefer req to ctx 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
cdb3747470 Remove nevow imports 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
de99912641 Replace ctx references with req references 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
1ee756c8df Use Beautiful Soup to check for favicon 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
2e60408bf6 Wrap counters in <span> tags
Unless the rendered page contains strings of the form "Objects
Checked: <span>n</span>" etc, test_POST_DIRURL_deepcheck will not
pass.
2020-06-17 21:18:14 -04:00
Sajith Sasidharan
33ddac879c Remove unused code 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
8094b3144d Use SlotsSequenceElement to render all objects 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
4e594b09bf Use SlotsSequenceElement to render corrupt shares 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
46cb3b6bc3 Use SlotsSequenceElement to render servers with corrupt shares 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
c41bca24f5 Use SlotsSequenceElement to render deep check results problems 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
bbd6bde478 Use SlotsSequenceElement to render remaining corrupt shares
This was previously not implemented; leaving it as such.
2020-06-17 21:18:14 -04:00
Sajith Sasidharan
19f6ec7102 Use SlotsSequenceElement to render servers with corrupt shares
This was previously not implemented; leaving it as such.
2020-06-17 21:18:14 -04:00
Sajith Sasidharan
e0c686bb92 Use SlotsSequenceElement to render post-repair problems 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
f168dcd19c Use SlotsSequenceElement to render pre-repair problems 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
c7aa789a22 Fix "class has no children attribute" error 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
cfb1560d15 Render "all objects" table using SlotsSequenceElement 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
3783349ea7 Add span tags to "deep check and repair results" template
Tests expect <span> tags around these numbers, let us add those.
2020-06-17 21:18:14 -04:00
Sajith Sasidharan
c4be4b566c Make TestRequest an object
Wouldn't pass PythonTwoRegressions.test_new_style_classes without
this.
2020-06-17 21:18:14 -04:00
Sajith Sasidharan
048840ac99 Stringify numbers 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
c44a167a66 Remove WebRenderingMixin from WebResultsRendering 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
02cd42c130 Simplify WebResultsRendering.test_literal 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
77120ba70c Update tests for ResultsRenderer classes 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
0d1269264a Stringify numbers in DeepCheckResultsRenderer 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
7237fef630 Add property client to CheckAndRepairResultsRendererElement 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
19db5fb312 Update "deep check and repair results" template 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
e4efcdd925 Make DeepCheckAndRepairResultsRenderer a MultiFormatResource 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
842b2b6be5 Use twisted tags in "deep check and repair results" template 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
27e5ce090a Update deep check results template 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
c33c0a884d Make DeepCheckResultsRenderer a MultiFormatResource 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
9dcaa104c5 Use twisted tags in deep check results template 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
0eea108123 Make CheckAndRepairResultsRenderer a MultiFormatResource 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
d9005fcccc Use twisted tags in check and repair results template 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
80e9f48551 Add line breaks in a comment 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
6f1601aeeb Stringify numbers before wrapping them up in tags 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
d2540b89d3 Use twisted web tags in ResultsBase 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
8e37bb1ebb Make ResultsBase a base class of CheckResultsRendererElement 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
fea4e516f3 Make CheckResultsRenderer a MultiFormatResource 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
9d104f5893 Use twisted tags in check results template file 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
cbc414725c Use "output" as format argument
Nearly everywhere else the query argument for output format is "t";
but here "t" is used for operations, and "output" is used for output
format.

The test suite will fail without this.
2020-06-17 21:18:14 -04:00
Sajith Sasidharan
c15001269f Avoid using a Python keyword as a renderer name 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
3901559e34 Make LiteralCheckResultsRenderer a MultiFormatResource 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
ebf23a4f0e Use twisted web tags in literal check results template 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
950d111793 Use POST target paths without pre-existing query arguments
`action="."` on `/uri/URI:DIR2:$DIRCAP` will render as `/uri/`, which
is not the result we want.
2020-06-17 21:16:38 -04:00
Sajith Sasidharan
55170dcd2b Rearrange imports 2020-06-17 15:45:08 -04:00
Sajith Sasidharan
7a23c8ed6c
Merge pull request #724 from sajith/3312.webui-directory-fix
Fix for "the webapi does not allow empty pathname components"

Fixes: ticket:3312
2020-06-17 10:55:21 -04:00
meejah
6a37f32eef use attr.s 2020-06-13 17:28:28 -06:00
meejah
939f60f620 embetter docstring 2020-06-13 17:22:17 -06:00
meejah
d221787541 better docstring 2020-06-13 02:03:19 -06:00
meejah
02a543515f replciate Tahoe's behavior for replace=true/false 2020-06-13 01:55:14 -06:00
meejah
0cbdbd9ebe symbols, not magic-numbers 2020-06-13 01:14:45 -06:00
meejah
b952ef066c match query args 2020-06-13 00:46:55 -06:00
meejah
24899dae8e assert -> ValueError 2020-06-13 00:41:22 -06:00
meejah
76040b53f5 assert -> raise 2020-06-13 00:39:57 -06:00
meejah
9f6fcde2f1 more docstring 2020-06-13 00:39:12 -06:00
meejah
a38188164f comment 2020-06-12 23:08:04 -06:00
meejah
c64e78634d docstring 2020-06-12 23:06:33 -06:00
meejah
23b17ca02e cleanup, docstrings 2020-06-12 23:05:32 -06:00
meejah
e79534abe8 housekeeping 2020-06-12 23:01:02 -06:00
meejah
fa597e1735 use real parser 2020-06-12 22:57:38 -06:00
meejah
949b09ce27 actually returns CREATED for new data 2020-06-12 22:08:36 -06:00
meejah
776ee5f91c use hypothesis -- which doesn't know about Deferred, so need testtools too 2020-06-12 22:04:12 -06:00
meejah
05ea0a2fe9 copyright, header 2020-06-12 22:04:03 -06:00
meejah
318dc5092d key -> kind 2020-06-11 19:57:21 -06:00
meejah
0e5422c24b handle more inputs in test body-producer 2020-06-11 19:57:11 -06:00
meejah
36d9bf5d09 new-style classes only 2020-06-11 15:34:47 -06:00
meejah
00e7d01a1a unused imports 2020-06-11 15:34:40 -06:00
meejah
86a90084bb simple test of testing/web 2020-06-11 14:14:42 -06:00
meejah
fc2203e421 simplify tahoe web fakes 2020-06-11 13:26:09 -06:00
meejah
3e973197ac synchronous-only up/download tahoe code to keep treq.testing happy 2020-06-03 11:32:22 -06:00
Sajith Sasidharan
4fa2e6ad97 Use twisted web directives in web.operations.ReloadMixin 2020-06-02 11:56:59 -04:00
meejah
1faa81c7c4 actual usable agent 2020-06-01 09:06:46 -06:00
Sajith Sasidharan
dd14da4a55 Decode name before null check
Make the diff against master a tad bit smaller.
2020-05-29 21:48:04 -04:00
Sajith Sasidharan
dce73f7c2f Make "Refresh" link work
This seems to be a subtle difference from nevow: with `href="."`,
rendered link target will be `/uri/`, so clicking "Refresh" will
result in an error message like so: "GET /uri requires uri=".

With `href=""`, the rendered link target will be `/uri/URI:...`, which
is what we need.
2020-05-29 21:44:10 -04:00
Sajith Sasidharan
31eba00d0f Reject trailing empty path piece in URIs 2020-05-29 21:38:43 -04:00
Sajith Sasidharan
0633623ecc Reject URIs that contain empty segments 2020-05-29 21:38:43 -04:00
Sajith Sasidharan
b6e00d09f9 Render self in DirectoryNodeHandler.getChild()
We need self.render_POST() etc. to be invoked when we have a request
such as "POST /uri/URI:DIR:..."; throwing an error here is probably
not the right thing to do.
2020-05-29 09:22:15 -04:00
Sajith Sasidharan
cf4b3ba008 Correct arguments to super()
This was incidentally found when looking at some test failures:
super(type, object) is the right invocation, and not the other way
around.
2020-05-29 09:20:18 -04:00
meejah
d50ca9af55 proof-of-concept verified-fake for testing 2020-05-26 18:33:04 -06:00
Sajith Sasidharan
d3f43d31d9 Remove unused import 2020-05-23 06:17:06 -04:00
Sajith Sasidharan
93d015e468 Document status.Status 2020-05-22 22:24:09 -04:00
Sajith Sasidharan
a6e32135e8 Update status page child route handler and table renderers
Drop nevow-isms and use twisted.web's way of doing things.
2020-05-22 22:15:45 -04:00
Sajith Sasidharan
3357f4c5ce Make Status a MultiFormatResource 2020-05-22 22:12:22 -04:00
Sajith Sasidharan
81dc63b511 Use twisted template tags in status page template 2020-05-22 22:12:22 -04:00
Sajith Sasidharan
03d529c22a Remove unused import 2020-05-22 21:33:30 -04:00
Sajith Sasidharan
9520ad71eb Rearrange imports 2020-05-22 21:24:21 -04:00
Sajith Sasidharan
f8562530be Make Element the superclass of UploadResultsRendererMixin 2020-05-22 21:11:42 -04:00
Sajith Sasidharan
b0e3325d03 Move time formatter tests
UploadResultsRendererMixin no longer has render_time(); moving tests
for render_time() as tests for abbreviate_time() to a more appropriate
place.
2020-05-22 20:49:34 -04:00
Sajith Sasidharan
91f8d939f8 Avoid use of RateAndTimeMixin in UploadResultsRendererMixin 2020-05-22 20:22:59 -04:00
Sajith Sasidharan
aecd90858a Render abbreviated rate and time values 2020-05-22 19:39:32 -04:00
Sajith Sasidharan
7be1883910 Document UploadResultsPage parameter 2020-05-22 19:39:32 -04:00
Sajith Sasidharan
5fdd61b146 Document UploadStatusPage 2020-05-22 19:39:32 -04:00
Sajith Sasidharan
54ac2d224a Remove unused imports 2020-05-22 19:39:32 -04:00
Sajith Sasidharan
7a82fd671f Handle "t=upload" in UploadResultsPage POST handling 2020-05-22 19:39:32 -04:00
Sajith Sasidharan
3bfa5a5c29 Use twisted web template in UploadResultsRendererMixin 2020-05-22 19:39:32 -04:00
Sajith Sasidharan
57b1203d17 Make UploadResultsPage a MultiFormatResource 2020-05-22 19:39:32 -04:00
Sajith Sasidharan
6470718691 Use twisted template tags in upload results page template 2020-05-22 19:39:32 -04:00
Sajith Sasidharan
41300097c8 Make UploadStatusPage a MultiFormatResource 2020-05-22 19:39:32 -04:00
Sajith Sasidharan
aac8dee8a0 Use twisted template tags in upload status page template 2020-05-22 19:39:32 -04:00
Sajith Sasidharan
aec6e5a9d4 Force a CircleCI build 2020-05-18 20:05:16 -04:00
Sajith Sasidharan
c23fedbcfe Add related ticket to comment about refactoring 2020-05-18 16:56:32 -04:00
Sajith Sasidharan
0b3db59742 Add related ticket to comment about unimplemented method 2020-05-18 16:56:32 -04:00
Sajith Sasidharan
993b1e225f Use transparent tags to render values 2020-05-18 11:01:14 -04:00
Sajith Sasidharan
c5342d8ae6 Add comments about events tables 2020-05-14 16:48:43 -04:00
Sajith Sasidharan
ab4811eaa0 Move tests for abbreviate time/rate methods to utils tests
RateAndTimeMixin.render_time() is really abbreviate_time(), and
RateAndTimeMixin.render_rate() is really abbreviate_rate().  This
change moves the tests to their rightful place, and exercises them
using the right names.

We're also trying to avoid use of mixins.  RateAndTimeMixin will
eventually go.
2020-05-14 16:09:54 -04:00
Sajith Sasidharan
88e8854ad4 Wrap renderer results in tags 2020-05-14 16:09:54 -04:00
Sajith Sasidharan
68df408229 Add a note about unimplemented DownloadStatus method 2020-05-14 16:09:54 -04:00
Sajith Sasidharan
1fa77d8983 Avoid use of DownloadResultsRendererMixin 2020-05-14 16:09:54 -04:00
Sajith Sasidharan
1f1f3b5f61 Remove unused render_timeline_link()
As it turns out, nothing is using this method.
2020-05-14 16:09:54 -04:00
Sajith Sasidharan
f3edc8a48c Add a note about rendering download events tables 2020-05-14 16:09:54 -04:00
Sajith Sasidharan
b02cfa5bbe Use more descriptive variable names 2020-05-14 16:09:54 -04:00
Sajith Sasidharan
7e02502268 Add comments to DownloadStatusPage 2020-05-14 16:09:54 -04:00
Sajith Sasidharan
e0241655e5 Update results renderer 2020-05-14 16:09:54 -04:00