Commit Graph

80 Commits (086c8044a2187fa9521705d3deca69962a54b31e)

Author SHA1 Message Date
David Wilson 43fae4414a Replace nasty print statements in six_brokenpkg. 7 years ago
dw 5e552e597c
Merge pull request #65 from moreati/unittest2-this-time-its-personal
Use unittest2 and specific assertX methods
7 years ago
Alex Willmer 110eba05ce Import and use unittest2 without aliasing it 7 years ago
Alex Willmer 7473addfd2 Replace all calls to file() with open()
Although these are synonyms in Python 2.x, when using MyPy to typecheck
code use of file() causes spurious errors.

This commit also serves as one small step to Python 3.x compatibility,
since 3.x removes the file() builtin.
7 years ago
Alex Willmer 81a77a453a Use specific TestCase assertions throughout tests
e.g. assert x == y -> self.assertEqual(x, y);
self.assertTrue(isinstance(x, y)) -> self.assertIsInstance(x, y)

These specific methods give more useful errors in the case of a test
failure.
7 years ago
Alex Willmer fdccf6a891 Replace custom assertContains() with unitest2 assertIn() 7 years ago
Alex Willmer 9351a44784 Use unittest2 in all tests
This allows using features such as TestCase,assertIsInstance on Python
2.6 and earlier.
7 years ago
R W H Bricheno 8fb0234176 Prevent MacOS exception on shutdown of closed socket. 7 years ago
R W H Bricheno 5a9c9d7101 Fix getting the directory path on Mac OS X. 7 years ago
Alex Willmer 29529c9a5c 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.
7 years ago
David Wilson f1660d5011 tests: initial first_stage_test. 7 years ago
David Wilson 2e8ed68609 Merge branch 'pr/50' 7 years ago
Alex Willmer fe2bf7111a ssh_test: Correct hostname in SShTest.test_stream_name()
I presume that `u1704` is a relic of a bygone container/host.
7 years ago
Alex Willmer a0fbe99be0 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
7 years ago
Alex Willmer cae6989932 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)")
```
7 years ago
David Wilson 492777f61b tests: stop responder_test spamming the logs 7 years ago
David Wilson 9e884d3d8b tests: stop fakessh spamming the logs 7 years ago
David Wilson c83d86f050 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.
7 years ago
David Wilson 397ff50a58 Try to be compatible with older Docker daemons; (hopefully) closes #46 7 years ago
David Wilson 8439e889ed core: More robust shutdown
Now there is a separate SHUTDOWN message that relies only on being
received by the broker thread, the main thread can be hung horribly and
the process will still eventually receive a SIGTERM.
7 years ago
David Wilson 1784f3c83a Add test that hangs the main thread during shutdown. 7 years ago
David Wilson fa9def91f2 Implement test_aborted_on_local_context_disconnect 7 years ago
David Wilson e3b51de6b1 Handle docker running on localhost. 7 years ago
David Wilson d7c15859bf Let utils_test run directly too. 7 years ago
David Wilson eac5daf28d Fix select_test failure, remove crap old timing_test. 7 years ago
David Wilson 291a44dc34 Remove proxy_test (duplicates sudo_test) 7 years ago
David Wilson 1f73c32d4c frameworkize nested_test. 7 years ago
David Wilson eb6afee514 Beginnings of module_finder_test 7 years ago
David Wilson fccf1b1cab Fix importer_test constructor signature. 7 years ago
David Wilson e6795a5c43 core: loosen assertion to allow fakessh_test to succeed. 7 years ago
David Wilson 2ed39c411f Allow call_function_test to succeed depite testlib import. 7 years ago
David Wilson 2659cf0ae0 Use enhanced assertRaises in call_function_test.py. 7 years ago
David Wilson b0e13fefdd Fix 2 call_function_test failures. 7 years ago
David Wilson 909937cc21 Simple scan_code_imports test. 7 years ago
David Wilson f57a12b3f9 Fix context naming for sudo and via=. 7 years ago
David Wilson 1a48e37981 Allow running responder_test with unittest. 7 years ago
David Wilson 839a1cbeb1 receiver: only permit one notify callback
There is no point spamming a list for every function call, there is no
use case where multiple notify callbacks would be useful.
7 years ago
David Wilson 031c0f3cf4 issue #20: TestCase subclass with a nicer assertRaises 7 years ago
David Wilson 186d823600 issue #20: tests and fixes for mitogen.master.Select(). 7 years ago
David Wilson 0db472c97b Fix up importer_test. 7 years ago
David Wilson 55bdb50d4f Add README.md to tests subdir. 7 years ago
David Wilson d553295135 Syntax error. 7 years ago
Alex Willmer a8d216eeab Update lingering references to with_broker & run_with_broker
A previous commit renamed run_with_broker() and with_broker() to
run_with_router() and with_router() respctively. Some references were
missed.
7 years ago
David Wilson c585f1bc5a fakessh: Add integration test for inter-child rsync. 7 years ago
David Wilson 5da8dc0cdc Allow running without py.test. 7 years ago
David Wilson 959af50c1f Make log_to_file accept string level rather than logging package constant
Saves an import, pain in the ass to type all the time.
7 years ago
David Wilson 729356b5f0 master: make write_all() handle O_NONBLOCK and deadlines. 7 years ago
David Wilson 16950a1620 core: Make iter_read() handle deadline (and non-blocking IO) properly 7 years ago
David Wilson aa5bc53f6d Update test. 7 years ago
David Wilson d6d83b3fac fakessh: cleanup master test. 7 years ago