Commit Graph

2072 Commits (2ec19f2374863937dd38048743c3735ee12c7e3f)
 

Author SHA1 Message Date
R W H Bricheno df61f6ab4d Prevent MacOS exception on shutdown of closed socket. 6 years ago
R W H Bricheno 39f325af3e Fix getting the directory path on Mac OS X. 6 years ago
David Wilson c09dcd82a7 Fix Python 3 fix :/ closes #57 6 years ago
Alex Willmer 026669aa93 tests: Fix GetModuleViaPkgutilTest fetching .pyc
On my laptop (Ubuntu 17.10, Python 2.7.14 in a virtualenv),
`test_regular_mod` fails with

```
AssertionError: "\nimport sys\n\n\ndef say_hi():\n    print 'hi'\n" !=
'\x03\xf3\r\n\xbbW\xd5Yc\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00@\x00\x00\x00s\x19\x00\x00\x00d\x00\x00d\x01\x00l\x00\x00Z\x00\x00d\x02\x00\x84\x00\x00Z\x01\x00d\x01\x00S(\x03\x00\x00\x00i\xff\xff\xff\xffNc\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00C\x00\x00\x00s\t\x00\x00\x00d\x01\x00GHd\x00\x00S(\x02\x00\x00\x00Nt\x02\x00\x00\x00hi(\x00\x00\x00\x00(\x00\x00\x00\x00(\x00\x00\x00\x00(\x00\x00\x00\x00sF\x00\x00\x00/home/alex/src/mitogen/tests/data/module_finder_testmod/regular_mod.pyt\x06\x00\x00\x00say_hi\x05\x00\x00\x00s\x02\x00\x00\x00\x00\x01(\x02\x00\x00\x00t\x03\x00\x00\x00sysR\x01\x00\x00\x00(\x00\x00\x00\x00(\x00\x00\x00\x00(\x00\x00\x00\x00sF\x00\x00\x00/home/alex/src/mitogen/tests/data/module_finder_testmod/regular_mod.pyt\x08\x00\x00\x00<module>\x02\x00\x00\x00s\x02\x00\x00\x00\x0c\x03'
```

`__file__` contains the path of the compiled `.pyc`, not the `.py`
source file.
6 years ago
Alex Willmer 77d57a7e38 fakessh: Remove colon causing SyntaxError
fixes #58
6 years ago
David Wilson 658806bde8 fakessh: interruptible wait compatible with <2.7; closes #55 6 years ago
David Wilson b3491b190c master: Lazy-format more logging arguments, minor 3.x compat increments 6 years ago
Alex Willmer 0e7cc55e33 first stage: Remove/dedent else block
Since the above if block ends in a call to os.execv() this block will
only ever run when the if condition was false. Hence putting it in an
else clause is unnecessary.
6 years ago
Alex Willmer d1c10f64a5 first stage: Use string concatenation 6 years ago
Alex Willmer b490cde604 first stage: eliminate whitespace 6 years ago
Alex Willmer c7c0266e99 first stage: single letter variables 6 years ago
David Wilson 8cabba6965 Add first_stage_test to Travis. 6 years ago
David Wilson 32cf2e1a97 Sort .travis.yml 6 years ago
David Wilson 65defaa354 tests: initial first_stage_test. 6 years ago
David Wilson 3d0e8c36d2 issue #49: 2.x/3.x compatible decode.
Much uglier command line, but it works across major Python releases.
6 years ago
David Wilson 038ab04908 docs: convert paragraph to footnote. 6 years ago
David Wilson e3d2c8d649 issue #49: update howitworks.rst for command line change 6 years ago
David Wilson db9bec8720 Implement Alex's awesome idea of zlibbing the first stage too! Closes #49 6 years ago
Alex Willmer 8dcfb1b7f7 testlib: Auto negotiate Docker API version
Ubuntu 17.04 provides Docker 1.12.6, which has API version 1.24.
`dev_requirements.txt` specifies the docker-py 2.5.1, which by default
requests API version 1.30.

Hence when the SSH unit tests try to run the container specified in
`DockerizedSshDaemon` an error occurs

```
APIError: 400 Client Error: Bad Request ("client is newer than server
(client API version: 1.30, server API version: 1.24)")
```
6 years ago
Alex Willmer 94992940dd ssh_test: Correct hostname in SShTest.test_stream_name()
I presume that `u1704` is a relic of a bygone container/host.
6 years ago
Alex Willmer dfc7b85504 testlib: Wait for sshd before running tests
On Ubuntu 17.10 something (probably Docker) appears to be accepting
connections, before sshd is fully ready. This results in a race
condition, and hence connection errors for the first few tests (2-3 on
my laptop).

testlib.wait_for_port() checks not only that the port can be connected
to, but also something resembling the sshd banner is sent.

Fixes #51
6 years ago
David Wilson f8a84616d7 tests: stop responder_test spamming the logs 6 years ago
David Wilson 7389272dc4 tests: stop fakessh spamming the logs 6 years ago
Alex Willmer b7e7ff1055 gitignore: distutils output files 6 years ago
Alex Willmer 6107cf7096 setup: Trove classifiers
These will help with future PyPI discovery, and should make it clear
that Python 3.x is not (yet) supported.
6 years ago
Alex Willmer 1ead1fb077 setup: Add a hashbang
- Uses /usr/bin/env so it still works in e.g. a virtualenv
- Uses python2, rather than python3 to indicate mitogen currently being
2.x only.
6 years ago
Alex Willmer 528b012736 setup: Use correct packages declaration
py_packages is not a field know by distutils or setuptools. The closest
is `py_modules`, which perhaps what the erroneus line here started as.

Fixes #43
6 years ago
David Wilson 12423566da Bump time allowance for fakessh_test 6 years ago
David Wilson 0481c08beb Ensure _run_defer() fully executes at least once before shutdown
Without this, it's possible for Waker to be start_received() after the
shutdown signal has already been sent, resulting in 5 second delay
during shutdown.

Additionally mask EBADF during os.write() to waker's write side.
Necessary since nothing synchronizes writer threads from the broker
thread during shutdown. Could be done with a lock instead, but this is
cheaper.
6 years ago
David Wilson 419c8c810f Bump time allowance for ssh_test. 6 years ago
David Wilson 4ae2f5925b Bump time allowance for select_test. 6 years ago
David Wilson 828f60351b importer: Delete _get_module_via_parent entirely
Can't figure out what it's supposed to do any more, and can't find a
version of Ansible before August 2016 (when I wrote that code) that
seems to need it.

Add some more mitigations to avoid sending dylibs.
6 years ago
David Wilson 58102c8179 docs: waiting on multiple calls 6 years ago
David Wilson b1ad04330b docs: move Router.route() into Sphinx. 6 years ago
David Wilson cf0668b2b1 docs: Add warning to preloading section. 6 years ago
David Wilson fb759f7c16 docs: move Broker docstrings into Sphinx. 6 years ago
Alex Willmer 1d60c2443a Add mock requirement 6 years ago
David Wilson ac7cada323 docs: more getting started guide 6 years ago
David Wilson 3ddd9fc51c mitop: fix overlong command lines corrupting the followign line 6 years ago
David Wilson 00ae0f225c mitop: Show new processes in bold. 6 years ago
David Wilson ffa063cc01 docs: annother barriage of cross-reference fixes. 6 years ago
David Wilson 9372d2c3de docs: Fix up tons of references, document trust chain 6 years ago
David Wilson 051285437f importer: module preloading docs 6 years ago
David Wilson b3bd075d37 docs: getting started 6 years ago
David Wilson 792e789908 More. 6 years ago
David Wilson c15d227da4 docs: way more appropriate image 6 years ago
David Wilson b94e7b3678 docs: more getting started 6 years ago
David Wilson 709b38c36e docs: Getting started tidyups 6 years ago
David Wilson dcc45bc7de docs: Get started on Getting Started 6 years ago
David Wilson 7f3a58d514 core: Remove unused on_shutdown attribute. 6 years ago