2233 Commits

Author SHA1 Message Date
Brian Warner
d5f3d47483 test/cli/test_create: remove errant print() 2016-12-08 14:59:11 -08:00
Brian Warner
250c6f6054 test_magic_folder: mark failing test as .todo
As discussed in this week's meeting, since we don't yet know why some
flavors of linux have slightly different inotify behavior than others,
and since we believe the actual functionality is not significantly
impacted, and since the red buildbot is reducing our confidence that the
other tests are passing, and since we have a release coming up: we're
marking the one troublesome test as ".todo". We expect that the test
will be fixed soon (perhaps to accept either 3 or 4 events), but not
necessarily before the 1.12 release.

refs ticket:2834
2016-11-02 13:31:22 -07:00
meejah
783449b4f3 When tor or i2p options are present, confirm we have txi2p or txtorcon
We mock out some import methods and provide tests for providing
server-side or client-side tor/i2p options
2016-10-26 13:41:10 -06:00
meejah
da4e1589bb Rename _turn_delay and friends to make things more clear
This forces the Uploader and Downloader to implement a _scan_delay
method and makes the naming more consistent with what's actually
happening. Also, fix a few "bugs" in the names of args in the
mocks for some tests.
2016-10-25 12:38:57 -07:00
meejah
ddaa29ce39 refactor/white-space MagicFolder creation 2016-10-25 12:38:57 -07:00
Brian Warner
4d003c026e test_magic_folder: remove unused debug code 2016-10-24 09:23:26 -07:00
Brian Warner
ae5637dc9c test_magic_folder: turn off debugging when done 2016-10-24 09:23:16 -07:00
David Stainton
d6cbe44786 Enable debug logging for test_move_tree magic-folder unit test 2016-10-24 09:15:09 -07:00
str4d
6071c2b6f8
Implement i2p_provider and --listen=i2p
Closes ticket:2838
2016-10-23 20:30:01 -05:00
Brian Warner
6d3a20e78b test_tor_provider: accept windows pathname separators 2016-10-09 01:49:32 -04:00
Brian Warner
ea1c1d27de fix tests to match 2016-10-09 01:22:17 -04:00
Brian Warner
89eb86c5a4 node.py: use tor_provider at startup
We use it for two things: to create the foolscap connection handler, and
to possibly start an .onion listener at startup.

This also updates node._common_config_sections to accept the new tor
settings written by create-node/create-introducer.
2016-10-09 01:21:51 -04:00
Brian Warner
6b9218ff22 create_node.py: use tor_provider to handle --listen=tor
This adds tor-related CLI arguments to "create-node" and
"create-introducer", to control exactly how we should be using Tor.

* --tor-launch
* --tor-executable=
* --tor-control-port=

I went with "--tor-launch" instead of "--launch-tor" for consistency. I
don't particularly like the grammatical flow of it, and it doesn't
actually put all the tor-related arguments next to each other in the
--help output (the flags are put in one block, then the parameters in
the next). But it seems slightly more consistent to start all the
tor-related argument names with a "--tor*" prefix.
2016-10-09 01:21:51 -04:00
Brian Warner
a1741ce4dc rewrite tor_provider
This uses a unix-domain control port, and includes test coverage.

create_onion() displays pacifier messages, since the allocate-onion step
takes around 35 seconds
2016-10-09 01:21:47 -04:00
Brian Warner
f549000121 test_create: get full coverage on create_node.py 2016-10-09 00:29:29 -04:00
Brian Warner
395f7cd4f0 create_node: prep for slow write_node_config()
This puts the right inlineCallbacks in place to allow
write_node_config() to return a Deferred. The upcoming Tor support will
need this (since it must wait for an .onion address to be allocated
before it can write tahoe.cfg's tub.port and tub.location lines).
2016-10-09 00:24:11 -04:00
Daira Hopwood
4d18425ed4 Fix for Magic Folder tests if the I/O encoding is borked on Unicode platforms (OS X, Windows).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-27 18:05:09 +01:00
Daira Hopwood
64841e339d Remove redundant use of NonASCIIPathMixin.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-27 16:16:19 +01:00
Daira Hopwood
c9d73a936a Fix Unicode-related Magic Folder test failures. fixes #2807
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-27 16:09:15 +01:00
Brian Warner
5ef04ef59e add hashutil.permute_server_hash
which uses SHA1 to combine the file's storage index (known as "peer
selection index" in this context) and each server's "server permutation
seed". This is the only thing in tahoe that uses SHA1.

With this change, we stop importing sha1 from anywhere else.
2016-09-26 20:42:42 -07:00
Brian Warner
b00c2d21b7 test tub.port with multiple endpoints, add docs
I think the preferred way to listen on both IPv4 and IPv6 will be to use
"--port=tcp:PORT,tcp6:PORT". This is now reflected in the docs.

refs ticket:867
2016-09-20 13:04:06 -07:00
Brian Warner
b9b731e3e2 update test to match new output 2016-09-20 10:14:35 -07:00
Brian Warner
a638a97806 implement connections:tcp=disabled
This enables an I2P-only node, which disables TCP entirely (instead of
mapping TCP to Tor, which was the only other option that
reveal-IP-address=False would allow).

closes ticket:2824
2016-09-14 16:27:12 -07:00
Brian Warner
02ba2a05c3 implement --listen=none, use it for create-client
Improve docs on server configuration to explain --listen options.
2016-09-14 16:12:32 -07:00
Brian Warner
a8f02d6684 enhance tests 2016-09-13 22:05:48 -07:00
David Stainton
9943a268ce Make the create-node --hide-ip option set [connections]tcp=tor 2016-09-13 10:15:45 +00:00
Brian Warner
d802135db1 test introducerless config
refs ticket:68
2016-09-12 17:45:17 -07:00
Brian Warner
4ae574cca0 test_multi_introducers: add more tests 2016-09-12 17:30:06 -07:00
David Stainton
4f717ba808 Add a multi-introducer implementation
this is based the previous work of warner, killyourtv and leif
 fixes ticket #68
2016-09-13 00:15:52 +00:00
Brian Warner
3b17289569 create_node: simplify validation, clean up tests 2016-09-09 18:53:22 -07:00
Brian Warner
229e306e9d test_runner: fix to use new conventions
create-node needs --hostname=, and we can't expect the node to write
client.port at startup (because tahoe.cfg now has tub.port= set
properly)
2016-09-09 18:53:22 -07:00
Brian Warner
9a1a186197 simplify tests: use parse_cli, assertRaises, assertFailure
parse_cli() got added during the async-CLI-dispatch work

assertRaises/assertFailure have been in Twisted for a while, but I only
learned about them recently. Over time I'm looking forward to changing
all tahoe tests to use them (and getting rid of ShouldFailMixin/etc).
2016-09-09 18:52:01 -07:00
Brian Warner
7d3b4149ae remove leftover debug prints 2016-09-09 18:51:57 -07:00
Brian Warner
09ce7963c6 fixes 2016-09-09 17:29:20 -07:00
David Stainton
e9c1075ac5 Make corrections from Daira's code review 2016-09-09 17:29:16 -07:00
David Stainton
31dfee2dcd fix cli test create tests 2016-09-09 17:10:22 -07:00
David Stainton
83db7e8b43 Add create node args: listen, port, hostname, location
fixes ticket: 2773
2016-09-09 17:10:22 -07:00
Brian Warner
802cfc87fe CLI: allow dispatch functions to return Deferred
In addition, CLI functions are allowed to use sys.exit() instead of
always needing to return the exit code as an integer.

runner.py now knows about the blocking httplib calls in scripts/cli and
scripts/magic_folder, and uses deferToThread() to invoke them. Those
functions cannot return a Deferred: when rewrite them to use twisted.web
or treq, we'll remove this deferToThread call.

Option parsing was split out to a separate function for testing. We now
use twisted.internet.task.react() to start the reactor, which required
changing the way runner.py is tested.

closes ticket:2826
2016-09-09 15:52:42 -07:00
Brian Warner
97c29a3c0b test_runner: factor out parse_cli() helper 2016-09-09 15:41:00 -07:00
Brian Warner
7193bff48b tests: use shared run_cli()/do_cli()
A couple of test classes which defined their own flavors were changed to
use the common one.
2016-09-09 15:41:00 -07:00
Brian Warner
07e4c491f5 move run_cli() up to test/common_util.py 2016-09-09 15:40:01 -07:00
Brian Warner
442468f599 do_cli(): split out run_cli()
The main part of CLITestMixin.do_cli() was split into a standalone
function named run_cli(), leaving do_cli() as a method which includes a
nodedir in the arguments (for use by GridTestMixin tests which do a lot
of CLI operations against one of their client nodes, for which adding
the extra --nodedir argument would be ugly).
2016-09-09 15:40:01 -07:00
Brian Warner
1877bd38b9 consolidate skip_if_cannot_represent_filename()
Remove duplicate copies of this utility, move it from a mixin/test-class
method to being a simple function in common_util.py
2016-09-09 15:40:01 -07:00
Brian Warner
d85d1ea499 CLITestMixin: move into common.py
Also move parse_options(). It was kind of awkward having other test
files import these from test_cli.py.
2016-09-09 15:40:01 -07:00
Brian Warner
45e5d5b891 test_configutil doesn't need CLITestMixin 2016-09-09 15:40:01 -07:00
Brian Warner
57bed47495 runner.py: remove unused arguments 2016-09-09 15:40:01 -07:00
Brian Warner
8d9afdc27e CLI: remove 'debug trial', 'debug repl'
These are obsolete. Tests are run with 'tox', or by running 'trial
allmydata' from a populated virtualenv. A populated virtualenv is also
the right way to get a repl: just run 'python'.

refs ticket:2735
2016-09-09 15:37:28 -07:00
Brian Warner
74dc7194b6 validate_config: improve tests
closes ticket:2809
2016-09-06 19:23:51 -07:00
meejah
2732c37941 Check for unknown config options
The list of valid sections + config-items came from
grep'ing the source for `.get_config`
2016-09-06 15:05:46 -06:00
Brian Warner
0116c965fa private-mode: reject legacy host:port locations 2016-09-02 09:25:26 -07:00