Commit Graph

2510 Commits

Author SHA1 Message Date
meejah
4d7f8ec9dd keep clientdir for now, improve how we access it 2018-08-25 02:10:44 -06:00
meejah
2937c729e3 change imports; introducer client.read_config 2018-08-25 02:10:44 -06:00
meejah
4c7f60f42a test fixups from review 2018-08-25 02:10:44 -06:00
meejah
107ddcd1ba get rid of get_clientdir 2018-08-25 02:10:44 -06:00
meejah
d544284f92 introduce create_node_dir 2018-08-25 02:10:44 -06:00
meejah
c93ee4f867 document a test-method 2018-08-25 02:10:44 -06:00
meejah
86a9ce5793 create _NoNetworkClient using same code as _Client 2018-08-25 02:10:44 -06:00
meejah
35810a5692 pull 'basedir' entirely into _Config
Put all config-related methods into _Config; change
code to ask config for paths instead of using basedir;
add some better docstrings
2018-08-25 02:10:44 -06:00
Jean-Paul Calderone
292448a423
Merge pull request #518 from LeastAuthority/test_upload_and_download_random_key
Avoid EADDRINUSE from allmydata.test.test_system.SystemTest

Fixes ticket:2933
2018-08-22 09:31:48 -04:00
Jean-Paul Calderone
74420fb764 Try to preserve the working directory 2018-08-17 15:53:59 -06:00
meejah
1af71e6ba3 confirm .stop() called 2018-08-17 15:53:59 -06:00
meejah
03712c9cca add docstrings 2018-08-17 15:53:59 -06:00
meejah
0607b7331f fix tests by overriding/patching reactor.stop in tests 2018-08-17 15:53:59 -06:00
meejah
423208f391 add a 'tahoe run' unit-test for config errors 2018-08-17 15:53:59 -06:00
meejah
e9879abc93 add unit-tests 2018-08-17 15:53:59 -06:00
meejah
4aec12a92f whitespace on long lines 2018-08-17 15:53:59 -06:00
meejah
3723945296 Actually validate configs when loading them
An indenting problem meant the validators weren't being
called, which revealed some follow-on errors.
2018-08-17 15:53:59 -06:00
Jean-Paul Calderone
f9d527f418 Avoid the chance of providing a real endpoint parser
This endpoint is test-grade.
2018-08-08 12:01:20 -04:00
Jean-Paul Calderone
0ca6b8ed52 An adopted-port-endpoint-based fix for the collision 2018-08-07 15:26:35 -04:00
Jean-Paul Calderone
9ec8ec814a Some comment improvements 2018-08-07 15:26:19 -04:00
Jean-Paul Calderone
b1520c8d71 Some improved logging while waiting for connections 2018-08-07 15:22:19 -04:00
Jean-Paul Calderone
d8dfcc9de5 There are no such subclasses. 2018-08-07 14:05:16 -04:00
Jean-Paul Calderone
f576575f11 system test setup broken into manageable pieces
`set_up_nodes` and `_set_up_nodes_2` now a little easier to understand
2018-08-07 14:04:20 -04:00
Jean-Paul Calderone
814203961d
Merge pull request #504 from exarkun/2929.circleci
Configure CircleCI for much of the Linux testing
2018-07-03 12:32:51 -04:00
Jean-Paul Calderone
53adf5083d Shorten the long path used by the long path test 2018-06-15 08:44:52 -04:00
Jean-Paul Calderone
b31b78e6cf
Merge pull request #501 from exarkun/1595.address-already-in-use-test_introducer-create_tub
Fix "Address already in use" errors from test_introducer on POSIX
2018-06-08 16:21:34 -04:00
Jean-Paul Calderone
1911b35499 Get the fcntl import up to the top as well 2018-06-08 13:15:19 -04:00
Jean-Paul Calderone
97e0ad627b explain the buried reactor import, just in case 2018-06-08 13:13:26 -04:00
Jean-Paul Calderone
2c38b148bf Move the safe interface import to the top 2018-06-08 13:12:46 -04:00
Jean-Paul Calderone
d25693145c Factor a little more duplication out of the tests 2018-06-08 11:21:25 -04:00
Jean-Paul Calderone
c491b1a7d4 bring some imports up to the top 2018-06-08 10:36:45 -04:00
Jean-Paul Calderone
28a2e6e557
Merge pull request #502 from exarkun/2926.cli-status-exceptions
Fix several cases where `tahoe status` rendering raises an unhandled exception.

Closes ticket:2926

Some possible operation states were not accounted for.
2018-05-28 08:38:42 -04:00
Jean-Paul Calderone
bfedd79633
Merge pull request #487 from tahoe-lafs/1455.x-frame-options.2
Set `X-Frame-Options: DENY` for all web status pages.

This prevents attackers from loading web status pages in a frame as a way to trick users into interactions which attackers are restricted from performing unaided.
2018-05-28 08:12:35 -04:00
Jean-Paul Calderone
20084506b3 Handle all the status cases 2018-05-23 13:59:42 -04:00
Jean-Paul Calderone
318eea05e3 docs 2018-05-23 10:59:42 -04:00
Jean-Paul Calderone
8a5e2edb91 Also CLOEXEC the descriptor
This avoids leaking it into any child processes that the tests might launch.
2018-05-23 10:56:26 -04:00
Jean-Paul Calderone
be6e458770 Ensure the fd will be valid by the time we listen 2018-05-23 10:50:54 -04:00
Jean-Paul Calderone
62836b6858 Switch another test to the adoption method 2018-05-23 10:47:41 -04:00
Jean-Paul Calderone
711d63960d Switch another test to the adoption method 2018-05-23 10:47:30 -04:00
Jean-Paul Calderone
277cd16594 Avoid race-prone allocate_tcp_port for some Tubs when possible
create_tub on POSIX can pre-allocate a port safely instead.
2018-05-23 10:45:15 -04:00
meejah
c219102afc
Merge pull request #492 from exarkun/2879.magic-folder-create-and-umask.0
Create the magic-folder local directory if necessary
2018-05-07 09:49:39 -06:00
meejah
cec3746682 explicit umask and skip part of test on windows 2018-05-01 16:45:50 -06:00
Jean-Paul Calderone
e0c73e0ea1 Merge remote-tracking branch 'origin/master' into 1455.x-frame-options.2 2018-05-01 14:39:48 -04:00
meejah
5414930184 not sure why we assert this 2018-05-01 10:52:12 -06:00
meejah
158498f61a 'positive' version of assert 2018-04-30 14:55:52 -06:00
meejah
04734dcfcb redundant test code 2018-04-30 14:55:51 -06:00
meejah
6d5355fda3 moar unit-tests 2018-04-30 14:55:51 -06:00
meejah
1f529567ca fix commented code 2018-04-30 14:55:51 -06:00
meejah
7c71194eea utest fixup 2018-04-30 14:55:51 -06:00
meejah
5f417c5179 objects_conflicted fixup 2018-04-30 14:55:51 -06:00
meejah
65ceda3a32 fix conflict behavior 2018-04-30 14:55:51 -06:00
meejah
affb80e39e test fixups 2018-04-30 14:55:51 -06:00
Jean-Paul Calderone
169ccbfbca directory creation fixes 2018-04-23 18:46:07 -04:00
Jean-Paul Calderone
035dc6dc76 reduce fragility of tests .. maybe?
only trivially, at best, of course.
2018-04-23 11:41:36 -04:00
Jean-Paul Calderone
ac6269dd2d Only read magic-folder config from config reader
Also, fix the umask feature which was completely broken previously due
to failure to parse the umask string into an integer.
2018-04-23 10:41:48 -04:00
Jean-Paul Calderone
234db487cd Add a unit test for X-Frame-Options being set 2018-04-13 12:56:50 -04:00
Jean-Paul Calderone
7bc207cdcb Shift this out of the way 2018-04-13 12:52:12 -04:00
Jean-Paul Calderone
dc4d30f7c2 Switch to TAHOE_LAFS prefix 2018-04-03 14:07:12 -04:00
Jean-Paul Calderone
6bca749592 this is still needed 2018-04-03 13:59:35 -04:00
Jean-Paul Calderone
f6f617c33c Teach it about a CI profile
This profile does not have time-based warnings.
2018-04-03 13:15:54 -04:00
Jean-Paul Calderone
da2e4a80cd Get rid of these individual suppressions 2018-04-03 13:15:54 -04:00
Brian Warner
ce473bd5f4 cli.test_alias: move skip-unless utility to common_util.py
next to the other skip-unless function
2018-03-28 15:30:24 -07:00
Brian Warner
0616aa7de7 test_absolute_storage_dir: don't use uSNOWMAN on non-unicode platforms
Exercising the unicode possibilities are nice, but not critical to this test,
so let's just avoid the non-ascii characters when the filesystem encoding
can't handle them
2018-03-28 15:17:23 -07:00
Brian Warner
0964bc0d05 test_alias: skip unicode tests on non-unicode platform
This was flunking the OS-X buildbot, which runs in an environment without
$LANG being set, and thus encodingutil deduces (correctly but unhelpfully)
that we're limited to ASCII. Other tests detect this situation and raise
SkipTest, so let's do that here too.
2018-03-27 15:56:10 -07:00
Jean-Paul Calderone
6ec5005ccd
Merge pull request #474 from exarkun/1587.basic-progress-report
Basic progress reporting for `tahoe backup`

Fixes ticket:1587
2018-03-27 07:47:01 -04:00
Jean-Paul Calderone
b78c6cc5ed Implement the progress reporting 2018-03-26 11:34:31 -04:00
Jean-Paul Calderone
6690aa7337 restore, with tests, checked counters 2018-03-26 10:27:19 -04:00
Jean-Paul Calderone
c55d2823ae first pass refactoring
now collect backup work up-front instead of mixed with processing
2018-03-26 10:02:42 -04:00
Brian Warner
38da8f471c test_web: appease pyflakes 2018-03-21 00:22:31 -07:00
Brian Warner
e6ddd03338 test_web: remove noisy print statement 2018-03-21 00:13:52 -07:00
meejah
643e2f9107 fix windows, maybe 2018-03-20 11:40:50 -06:00
meejah
fcfcbaa6a2 fix behavior of fake fileops test-helper 2018-03-20 11:40:49 -06:00
meejah
2fd2a9b2c7 nicer assert 2018-03-20 11:40:49 -06:00
meejah
9df84e71fe use better error-testing idiom and don't tweak internal method 2018-03-20 11:40:49 -06:00
meejah
ee0f548aa7 describe test 2018-03-20 11:40:49 -06:00
meejah
a06fe375ec describe test 2018-03-20 11:40:49 -06:00
meejah
c7cbb4a6b3 better var names 2018-03-20 11:40:49 -06:00
meejah
9032539860 flake8; naming 2018-03-20 11:40:49 -06:00
meejah
797932244d log failure properly, add test 2018-03-20 11:40:49 -06:00
meejah
39080852cc ensure 'in progress' items return status 2018-03-20 11:40:49 -06:00
meejah
1f495ec41f cover uploads and downloads in tests 2018-03-20 11:40:49 -06:00
meejah
75e97e6c6d use QueuedItem directly instead of FakeStatusItem 2018-03-20 11:40:49 -06:00
meejah
472d6ba78b cover some of get_status 2018-03-20 11:40:49 -06:00
meejah
bfabfeba64 add 'size' to tests, print unicode 2018-03-20 11:40:49 -06:00
Jean-Paul Calderone
1f92879788 improve test coverage 2018-03-19 14:21:28 -04:00
Ruben Pollan
136de7d7f7 Add storage_dir config field
On the [storage] section of the tahoe.cfg now there is a field
'storage_dir' where the path to the storage folder can be configured.
2018-03-19 11:20:04 -04:00
meejah
a1cb401f06
Merge pull request #452 from meejah/list-aliases-json.1
Add --json option to 'tahoe list aliases'
2018-03-13 17:05:20 -06:00
tpltnt
0461cc0148 only one module import per line 2018-03-02 16:45:11 +01:00
meejah
3466088717 add --json option for 'tahoe list-aliases'
some new tests to cover previously-uncovered code that changed
2018-01-05 18:07:52 -07:00
tpltnt
c5e8d83b73 removed old test/trial helper module 2018-01-04 22:09:52 +01:00
meejah
5f00842532 use exarkun's suggestion from review 2018-01-03 14:07:38 -07:00
meejah
e5d6272b62 use '5 years ago' instead of absolute timestamp 2017-12-20 13:17:54 -07:00
meejah
6c0c90829f cheezy test for more coverage 2017-12-05 12:02:16 -07:00
meejah
87ad3cb8e9 fix 2880
- remember upload URI so we don't re-download
- account for empty files in "should_download"
- fix 'conflicted' asserts in tests
2017-12-05 12:02:16 -07:00
meejah
672475cb2b Multiple magic-folders
This moves all magic-folder configs to a single YAML
file. We load legacy config fine and don't mess with
legacy config unless you use a magic-folder command that
changes the config.

Increase test coverage
2017-12-05 10:34:48 -07:00
meejah
1b6f477549 Pull "config" handling out of Node and hide node-derivitives
This includes:

 - refactor to create_client and _Client
 - refactor to _IntroducerNode and create_introducer
2017-11-20 12:57:20 -07:00
meejah
50f8397c99 Merge branch 'invalid-pidfile' into delete-invalid-pidfile--lpirl
Conflicts:
	src/allmydata/scripts/startstop_node.py
	src/allmydata/test/cli/test_cli.py
2017-11-08 14:49:29 -07:00
Brian Warner
a1711088ed test_i2p_provider: exercise escaping of apiEndpoint attribute 2017-11-03 00:24:46 -07:00
Brian Warner
1f1afe65ec tor_provider.get_listener(): return a real endpoint, instead of a descriptor
get_listener() is allowed to return either, and the Tor provider is currently
simple enough to not really need more than a basic descriptor, but have it
return a full Endpoint for use as an example of what I2P can do later.
2017-11-03 00:24:46 -07:00
Brian Warner
d713e0e57d address review feedback: docstrings, better test class name 2017-11-03 00:24:46 -07:00
Brian Warner
097abb42fa tahoe.cfg: add tub.port=listen:i2p (and/or listen:tor)
This delegates the construction of the server Endpoint object to the i2p/tor
Provider, which can use the i2p/tor section of the config file to add options
which would be awkward to express as text in an endpoint descriptor string.

refs ticket:2889 (but note this merely makes room for a function to be
written that can process I2CP options, it does not actually handle such
options, so it does not close this ticket yet)
2017-11-03 00:24:46 -07:00
Brian Warner
d1fd43aa4f tor/i2p: rename create_onion/create_dest to create_config 2017-11-03 00:24:46 -07:00
meejah
263a3f43c1 stop chdir 2017-09-19 10:39:19 -06:00
meejah
9375056b61 Split up startstop_node and add 'tahoe daemonize'
This sets the stage for further changes to the startup
process so that "async things" are done before we create
the Client instance while still reporting early failures
to the shell where "tahoe start" is running

Also adds a bunch of test-coverage for the things that got
moved around, even though they didn't have coverage before
2017-09-19 10:39:19 -06:00
Lukas Pirl
89bacbb70a Merge branch 'master' into invalid-pidfile 2017-08-24 18:40:00 +02:00
Lukas Pirl
46305c74e1 added test for (ignoring an) invalid PID file when starting a node 2017-08-24 17:56:57 +02:00
Jean-Paul Calderone
86f79e8111 Add a test for the non-numeric case 2017-08-24 16:46:46 +02:00
Jean-Paul Calderone
354567cb85 Add a test for the non-numeric case 2017-08-24 10:34:58 -04:00
Brian Warner
8dd0a5f772 dictutil: remove unused move, subtract, del_if_present 2017-08-12 21:48:05 -07:00
Brian Warner
61b85dbf78 dictutil: remove unused ValueOrderedDict 2017-08-12 21:34:24 -07:00
Brian Warner
4f493b1a03 remove unused UtilDict 2017-08-12 21:31:47 -07:00
Brian Warner
a76d9e084f dictutil: remove unused NumDict 2017-08-12 21:21:04 -07:00
Brian Warner
3f2f7dfb05 dictutil: fix bug in str(ValueOrderedDict), and improve test coverage
It looks like str() was meant to truncate the dict, but a missing i+=1 meant
that it never actually did. I also changed the format to include a clear
"..." in case we truncate it, to avoid confusion with a non-truncated dict of
the same size.

This also improves test coverage in subtract() and
NumDict.item_with_largest_value().

refs ticket:2891
2017-08-10 10:27:02 -07:00
Brian Warner
95ac5494ff test_backupdb: tolerate newer sqlite-3.20.0 error messages 2017-08-10 10:21:39 -07:00
meejah
798bf57e28 Add 'tahoe invite' and 'tahoe create-node --join' commands
This opens a wormhole and sends appropriate JSON down
it to a tahoe-gui using a wormhole server running on
tahoe-lafs.org

The other end uses the 'tahoe create-node' command (with
new --join option) to read the configuration JSON from
a 'tahoe invite' command
2017-08-08 18:27:06 -06:00
meejah
e2a5751d02 at least use random port 2017-08-08 10:42:11 -06:00
Brian Warner
05317d4d12 test_web: replace all shouldHTTPError with assertHTTPError
and update to inlineCallbacks while we're in there
2017-07-27 16:31:44 -07:00
Brian Warner
2687ee90c5 test_web: remove last traces of deprecated client.getPage 2017-07-27 16:31:44 -07:00
Brian Warner
965e974ce8 test_web: fix POST(url,body) calls that should have been POST2()
and remove the followRedirect= argument from POST
2017-07-27 16:31:44 -07:00
Brian Warner
0deb903888 test_web: rewrite all POST(followRedirect=True) calls with do_http
Since POST() is about to lose followRedirect=True
2017-07-27 16:31:44 -07:00
Brian Warner
3f03367d2f test_web: remove all other uses of shouldRedirect 2017-07-27 16:31:44 -07:00
Brian Warner
76063b1c12 test_web: replace some instances of shouldRedirect with shouldRedirectTo 2017-07-27 16:31:44 -07:00
Brian Warner
6be91e369c test_web: replace shouldReplace2 with shouldReplaceTo
This removes many uses of self.POST (since shouldReplaceTo does its own
HTTP), which will make it easier to remove client.getPage from POST.
2017-07-27 16:31:44 -07:00
Brian Warner
4745239c2c test_web: use inlineCallbacks in many functions
specifically everywhere we use self.shouldRedirect2
2017-07-27 16:31:44 -07:00
Brian Warner
73d09082d7 test_web.web.Web.POST: split out build_form() helper function 2017-07-27 16:31:44 -07:00
Brian Warner
202a9714c4 test_web test_bad_method: remove a client.getPage
Add WebErrorMixin.assertHTTPError, to replace (getPage + shouldHTTPError)
2017-07-27 16:31:44 -07:00
Brian Warner
bee05e883c test_web: remove HTTPClientGETFactory
This also changes the tests to handle the new API: URL can be unicode, and
the returned Headers object is not a dictionary.
2017-07-27 16:31:44 -07:00
Brian Warner
5a895b5fb6 GridTestMixin.GET: use treq instead of HTTPClientGETFactory 2017-07-27 16:31:44 -07:00
Brian Warner
3311f9520d test.cli.test_status: replace getPage with treq 2017-07-27 16:31:44 -07:00
Brian Warner
bd1e4507ee remove unused HTTPClientHEADFactory 2017-07-27 16:31:44 -07:00
Jean-Paul Calderone
e32f581d07 Get rid of the reliance on rref
It provides information more correctly obtained from
get_connection_status().
2017-07-27 16:31:41 -04:00
Jean-Paul Calderone
1f16a173f0 flatten the result structure
flat is better than nested
2017-07-27 15:32:47 -04:00
Jean-Paul Calderone
7027547ecc fix buggy test; restructure data
scared about duplicate nodeids in the data getting lost, switch to a list
2017-07-27 15:26:30 -04:00
Jean-Paul Calderone
f518c2a521 Switch over to stdlib json 2017-07-27 15:26:30 -04:00
Jean-Paul Calderone
e339130e63 Just make an assertion against the full value 2017-07-27 15:26:30 -04:00
Jean-Paul Calderone
e3e49632a5 use preferred spelling for new assertions 2017-07-27 15:26:30 -04:00
David Stainton
cd97f8519b web test: get_version should use a version string 2017-07-27 15:26:29 -04:00
David Stainton
923363c0d6 web test: test for server key in json welcome 2017-07-27 15:26:29 -04:00
David Stainton
ecb6651926 Add basic unit test for json welcome page 2017-07-27 15:26:29 -04:00
Jean-Paul Calderone
7c8c63a01f a helper for the ?t=json resources 2017-07-27 13:57:02 -04:00
Brian Warner
ad92b2b9b2 test_web: replace HEAD/PUT/DELETE with treq 2017-07-12 17:10:49 -07:00
Brian Warner
486fca0d5c web.test_introducer: replace getPage with treq 2017-07-12 17:10:49 -07:00
Brian Warner
8be5072fca test_system: replace getPage with treq 2017-07-12 17:10:49 -07:00
Brian Warner
2ec3791411 test_deepcheck: replace t.w.client.getPage with treq 2017-07-12 17:10:46 -07:00
Brian Warner
74e7ef4b98 test_happiness: limit string sizes to 30 chars
I think these are supposed to represent share ids or server ids, so we don't
need to exercise them being too huge.
2017-07-12 16:37:44 -07:00
Brian Warner
11c39325fb test_happiness: suppress the hypothesis 'too_slow' check
I was seeing buildbot failures where the host machine was too busy, and
hypothesis was spooked into thinking that data generation was too slow.
2017-07-12 16:27:13 -07:00
meejah
0977e52cbf Add a test for 'tahoe list-aliases --readonly-uri' 2017-06-06 18:03:05 +01:00
meejah
05f48c3601 Various cleanups, fixes and improvements
Squashed all commits that were meejah's between
30d68fb499f300a393fa0ced5980229f4bb6efda
and
33c268ed3a8c63a809f4403e307ecc13d848b1ab
On the branch meejah:1382.markberger-rewrite-rebase.6 as
per review
2017-06-05 16:31:41 -06:00
David Stainton
19c5bbb43b Fix test test_lost_servers
Remove old hypothesis tests

Fix allmydata.test.cli.test_cli.Errors.test_get

this was broken due to differing share placements
whereas we need to allow this.

Fix test_5_overdue_immutable

This change makes the test not depend on the value
of PYTHONHASHSEED.

Revert "Fix test_5_overdue_immutable"

This reverts commit 5f3696d9a53e7df8781a2c463c7112282397cd69.

fix test to actually hang the first 5 *servers*

sort keys for stable output

use file-context-managers

remove probably-unneeded assert (that fails sometimes)

another non-deterministic test?
2017-06-05 16:26:46 -06:00
meejah
56f6dbd363 distribute only to read/write peers
correctly calculate happiness

guard with except

fix tests, and happiness calculation

remove debug

fix placements to None

happiness calc shouldn't have to filter None

WIP fixing some tests etc
2017-06-05 16:26:46 -06:00