Commit Graph

706 Commits

Author SHA1 Message Date
Alex Willmer b5848e7116 Ignore compiled Python files 2018-04-01 01:45:22 +01:00
Alex Willmer 5e66f6c4fa Ignore hidden directory containing tox environments 2018-04-01 01:44:29 +01:00
Alex Willmer dc60f05a40 tests: Switch to unit2 test runner, with coverage
This means test files are imported as modules, not run as scripts. THey
can still be run individually if so desired. Test coverage is measured,
and an html report generated in htmlcov/. Test cases are automativally
discovered, so they need not be listed twice. An overall
passed/failed/skipped summary is printed, rather than for each file.

Arguments passed to ./test are passed on to unit2. For instance

    ./test -v

will print each test name as it is run.
2018-04-01 01:43:45 +01:00
Alex Willmer 7b8fef5284 tests: Make the tests directory an importable package
Required for test discovery by e.g. unit2, pytest
2018-04-01 01:32:13 +01:00
Alex Willmer a22294dda9 call_function_test: Fix assumption that we run as a script 2018-04-01 01:23:13 +01:00
Alex Willmer 0dcaeb21a2 master_test: Don't assume __file__ points to source code
When run under a test runner the unit tests are imported as modules.
This triggers .pyc generation, after which __file__ resolves to the .pyc
file.
2018-04-01 01:21:42 +01:00
Alex Willmer 841c2b13a1 fakessh_test: Apply timeout decorators to rsync tests
timeoutcontext.timeout uses SIGALRM, hence it will only work on Unix
like operating systems.
2018-04-01 01:17:29 +01:00
David Wilson 3dc90b7618 issue #106: import skeletal planner module. 2018-03-30 16:06:23 +05:45
David Wilson 28cd17cf56 issue #106: import skeletal new executor. 2018-03-30 15:55:38 +05:45
David Wilson 9067a7b173 ansible: Move setLevel() bits together. 2018-03-30 14:42:54 +05:45
David Wilson 6958b8ff09 docs: More getting started. 2018-03-30 13:05:47 +05:45
David Wilson 76ac49dbdc examples: more comments. 2018-03-30 12:50:12 +05:45
David Wilson 9eccfb4972 examples: add top-level doc 2018-03-30 12:41:53 +05:45
David Wilson a68e833463 examples: add a ton of comments to mitop.py. 2018-03-30 12:35:41 +05:45
dw f440e88f2f
Merge pull request #175 from wezm/become-pass
Use become_pass for sudo password
2018-03-30 12:01:21 +05:45
Wesley Moore 3d5bbb9a63 Use become_pass for sudo password 2018-03-30 13:00:43 +11:00
David Wilson 682a4ca8d4 issue #174: reproduction. 2018-03-30 02:31:14 +05:45
David Wilson fa271fcc8e issue #174: select.error interface differs to OSError
Only OSError got the magical attribute treatment, select.error still
behaves like a tuple.
2018-03-30 02:25:09 +05:45
David Wilson ffdd192397 issue #155: must catch select.error too.
Regression caused by merging exception handlers in 9079176.
2018-03-30 02:22:07 +05:45
David Wilson 8674ec42dd docs: add new risk 2018-03-30 01:37:17 +05:45
David Wilson 36e1ae15fd issue #172: prevent 'No handlers..' error being printed. 2018-03-30 01:10:30 +05:45
David Wilson e0c4d6b348 ansible: Quick fix for #172. 2018-03-30 00:13:22 +05:45
David Wilson bbb0f1bbd8 issue #155: fix double-fork behaviour and test it this time. 2018-03-29 23:57:24 +05:45
David Wilson 4c433dbed1 parent_test: Add explanation. 2018-03-29 23:49:45 +05:45
David Wilson bde1778373 tests: merge tty_create_child() test into parent_test and fix hang 2018-03-29 23:36:50 +05:45
David Wilson 6670cba41c Introduce handler policy functions; closes #138.
Now you can specify a function to add_handler() that authenticates the
message header, with has_parent_authority() and is_immediate_child()
built in.
2018-03-29 21:40:33 +05:45
David Wilson 46a14d4ae2 core: Fix logging crash if data is non-string. 2018-03-29 21:33:59 +05:45
David Wilson f726ef86de tests: first_stage_test regression due to 1ff27ada49 2018-03-29 21:33:18 +05:45
David Wilson 40b978c9b7 core: Fix source verification.
Previously:

* src_id could be spoofed
* auth_id was checked but the message was still delivered!
2018-03-29 20:24:54 +05:45
David Wilson fe614aa966 core: cleanup handlers on broker crash; closes #112. 2018-03-29 19:32:31 +05:45
David Wilson 29e508fde9 ssh: enable app-level keepalive by default; closes #77 2018-03-29 19:16:21 +05:45
David Wilson 1ff27ada49 Add maximum message size checks. Closes #151. 2018-03-29 18:54:55 +05:45
David Wilson e1af2db4ae issue #155: handle crash in the forking child better.
This code path is probably only necessary during development, but it
prevents tracebacks (etc.) getting written over the Stream socket, which
naturally causes corruption.

Instead keep whatever the parent has for stderr, manually write a
traceback there and hard exit.
2018-03-29 17:59:23 +05:45
David Wilson 6db3588c93 Only call _start_transmit when required; closes #165. 2018-03-29 16:06:18 +05:45
David Wilson 80a97fbc9b core: Rename Sender.put() to Sender.send().
Been annoying me for months.
2018-03-29 15:43:48 +05:45
David Wilson b48d63f33b docs: add to_sender() and update serialization notes 2018-03-29 15:38:44 +05:45
David Wilson 085b3d21bd core: fix call_function_test regression
Second time in 3 weeks. So stupid. This time write tests.
2018-03-29 15:34:20 +05:45
David Wilson 0f29baa077 core: support pickling senders, Receiver.to_sender()
CC @moreati, in case this impacts you
2018-03-29 15:32:40 +05:45
David Wilson 692af860ba core: remove use of defer() from _async_route(). 2018-03-29 15:14:01 +05:45
David Wilson 8676c40674 core: make _start_transmit / _stop_transmit async-only
For now at least, these APIs are always used in an asynchronous context,
so stop using the defer mechanism.
2018-03-29 15:10:43 +05:45
David Wilson ee0f21d57f core: remove Queue locking from broker loop.
Move defer handling out of Broker and into Waker (where it belongs?).
Now the lock must only be taken if Waker was actually woken.

Knocks 400-item run_hostname_100_times from 10.62s to 10.05s (-5.3%).
2018-03-29 14:38:30 +05:45
David Wilson 17aef51e6e tests: Import .local() latency test 2018-03-29 14:36:43 +05:45
David Wilson a8a31728a0 tests: Import Latch soak test 2018-03-29 14:31:57 +05:45
David Wilson 15194abb8c Remove testlib.py from test.sh. 2018-03-29 14:15:09 +05:45
David Wilson d6f49a003b issue #106: ansible: beginnings of FileService. 2018-03-29 13:52:19 +05:45
David Wilson 6118d4e6df tests: set MITOGEN_LOG_LEVEL=debug in .travis.yml too. 2018-03-29 07:26:12 +00:00
David Wilson 03fcf057dd tests: just call log_to_file() from testlib
Now we can run test.sh with MITOGEN_LOG_LEVEL=debug and things just
work.
2018-03-29 07:25:11 +00:00
David Wilson 761cd9eaf8 tests: import tty_create_child_test.py. 2018-03-29 13:03:08 +05:45
David Wilson 7b12f84366 core: support CallError(str) for service.py. 2018-03-29 11:53:02 +05:45
David Wilson c33bc22f21 docs: fix reading time tracking :( 2018-03-28 18:38:20 +05:45