Commit Graph

104 Commits

Author SHA1 Message Date
meejah
4be5a767fd bytes, prefixes 2019-07-08 14:00:11 -06:00
meejah
de94a0fd3e fix util, error crypto imports 2019-06-24 12:29:01 -06:00
meejah
a27a5ce581 test all error-cases, and some fixups 2019-06-17 21:56:06 -06:00
meejah
47ccdb0177 refactor ed25519 helpers to functional style
eliminates the wrapper classes and uses some more-explicit
names throughout (e.g "sk" -> "signing_key")
2019-06-13 22:19:28 -06:00
meejah
02bc5c1f42 codechecks fixup 2019-06-13 22:19:28 -06:00
heartsucker
8063d93c6d replaced pytcryptopp rsa with our own wrapper 2019-06-13 22:19:28 -06:00
heartsucker
9e31bfe2f4 update code/test to use new ed25512 module 2019-06-13 22:19:28 -06:00
tpltnt
c8f11dc2d3 ported old-style classes to new-style 2019-05-26 08:28:18 +02:00
Jean-Paul Calderone
628c7e7c5f remove the custom timeouts 2019-05-08 18:39:26 -06:00
Jean-Paul Calderone
9a30eaa83c move listenOnUnused to a place where implementation code can use it 2019-04-16 11:26:15 -04:00
Jean-Paul Calderone
77b63e2855 This is unused! 2019-03-07 18:56:44 -05:00
Jean-Paul Calderone
1fdb13579a Oops. Testtools doesn't have these. 2019-03-07 18:56:37 -05:00
Jean-Paul Calderone
b2afe86b84 These tests leak resources. Clean them up. 2019-03-07 18:56:25 -05:00
Jean-Paul Calderone
19666c4c91 This class doesn't use poll. 2019-03-07 18:38:52 -05:00
Jean-Paul Calderone
bbd3b200cb Use our base TestCase classes for these introducer tests
They gain free tempfile cleanup as a result.
2019-03-07 18:38:52 -05:00
Jean-Paul Calderone
cb9ad3faa5 supercall tearDown *synchronously*
It doesn't like it if it only happens later, I guess.
2019-03-07 18:34:59 -05:00
Jean-Paul Calderone
3814ccb947 Fix some setUp and tearDown 2019-03-07 14:04:17 -05:00
meejah
768eceacf2 unused var 2018-09-11 11:38:56 -06:00
meejah
1ad2174df9 windows yaml.safe_load returns None on unreadable files.. 2018-09-11 11:14:41 -06:00
meejah
7d34f8f1a1 test case when safe_load fails 2018-09-10 21:58:28 -06:00
meejah
71484b4a12 upgrade create_introducer 2018-09-10 21:58:27 -06:00
meejah
d478cf3831 add some docstrings, fix comments 2018-08-25 02:10:44 -06:00
meejah
dd2209a96c tests to cover config changes 2018-08-25 02:10:44 -06:00
meejah
d544284f92 introduce create_node_dir 2018-08-25 02:10:44 -06: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
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
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
031a88c25f simplejson -> json 2017-02-23 15:21:36 -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
a1594df0a6 introclient: only give ascii key_s to storagebroker
This was triggered when the initial Introducer connection failed, so the
node read the introducer_cache.yaml from disk. That always returns
unicode strings, and the StorageFarmBroker insisted that it's
server-IDs (aka "key_s") were bytestrings.

The tests were extended to exercise the code that loads from disk and
delivers to the StorageFarmBroker, and more preconditions were put in
place to catch this sort of thing earlier next time.

closes ticket:2817
2016-09-01 20:29:52 -07:00
Brian Warner
2c5f7ed425 factor out yamlutil.py
The yaml.SafeLoader.add_constructor() should probably only be done once,
and moving this all into a module gives us an opportunity to test it
directly.
2016-07-19 17:31:41 -07:00
Brian Warner
a39270bd46 more v1-introducer cleanup: require sigs
This removes a little bit of code that tolerated unsigned announcements.
2016-07-05 16:41:15 -07:00
Brian Warner
6f1e01453e remove make_index()
index is now always (service_name, key_id)
2016-06-29 23:06:40 -07:00
Brian Warner
ae91fa9ffe require all outbound announcements to be signed 2016-06-29 23:06:40 -07:00
Brian Warner
c64ff7b310 more v1 removal cleanup
Historical note: V2 introducers have been around for three years
now (released in 1.10.0), so it's time to drop v1. This branch removes a
lot of fallback code, and tests which exercised it. refs ticket:2784

This patch removes some now-unused code: v1-related support functions on
the client, "stub-client" handlers, and v1-tolerant remote methods on
the server. The unit tests have been cleaned up a bit too, now that
there are fewer cases to exercise.
2016-06-29 22:58:14 -07:00
David Stainton
7feee8a25e Butcher unit tests until all test_introducer tests pass 2016-06-02 17:20:31 +00:00
David Stainton
ea35563b81 Remove v1 introducer code and fix tests
Fixed many of the test_introducer tests.
Work-in-progress.
2016-06-02 16:47:58 +00:00
Brian Warner
0ff00dff6f test loading the cache 2016-05-11 18:17:22 -07:00
Brian Warner
5bedca43e3 load-yaml-cache cleanups
* use yaml.safe_load and yaml.safe_dump
  * configure SafeLoader to return unicode consistently, not str
* log+ignore bad cache, instead of throwing error, since we're already
  in the log+ignore chain from connect_failed()
* use a local exception type, instead of one from storage_client.py
* delegate delivery to self._deliver_announcements

Using yaml.safe_dump gives us:

- ann:
    my-version: tahoe-lafs/1.11.0.post96.dev0
    nickname: node-4

instead of:

- ann:
    !!python/unicode 'my-version': !!python/unicode 'tahoe-lafs/1.11.0.post96.dev0'
    !!python/unicode 'nickname': !!python/unicode 'node-4'

We want SafeLoader to consistently return unicode instead of sometimes
plain strings (for ASCII-safe values) and sometimes unicode
(for everything else). The data we write into the cache was all unicode
to start with (it came from a JSON parser), so it seems better to get
back unicode too.
2016-05-11 18:15:50 -07:00
Brian Warner
cfb939aa99 improve test_client_cache 2016-05-11 16:48:05 -07:00
Brian Warner
ecec58b339 test_introducer: factor out _load_cache 2016-05-11 15:03:32 -07:00