Commit Graph

102 Commits (ade2b888b15cd705f474bb1a09877c64b0a58943)

Author SHA1 Message Date
David Wilson 60328ac6d4 README: move testing bits into tests directory. 7 years ago
David Wilson 785ccbcb7a tests: import very basic latch_test 7 years ago
David Wilson 220a41a2b3 tests: import ansible_helpers_test. 7 years ago
Alex Willmer ba3bc0f7f1 core: Standardise type of Importer.whitelist
This seemed a reasonable streamlining, but I'm happy to be overruled.
7 years ago
Alex Willmer 621f2533f7 tests: Add mitogen.core.is_blacklisted_import() tests
These test the current behviour, which may not be exactly the intended
behaviour. Refs #98
7 years ago
Alex Willmer 8bcff6c87c tests: Fix typo in ResolveRelPathTest 7 years ago
Alex Willmer bd0a3cbe7c tests: Remove jinja2/markupsafe modules from FindRelatedTest
Not sure how they got there, but Django doesn't use Jinja without
explicit configuration.
7 years ago
Alex Willmer 71c00789f0 tests: Fix expected values FindRelatedTest for Django 1.11.4 7 years ago
Alex Willmer a931113a2c tests: Add new FindRelatedImportsTest 7 years ago
Alex Willmer 81e22a12e9 tests: Remove module under search from expected results
This matches a tweak made in 8765f761c9
7 years ago
Alex Willmer 4ae7fcc9bc tests: Rename FindRelatedImportsTest -> FindRelatedTest 7 years ago
David Wilson 7a5d18835e core: Ensure add_handler() callbacks really receive _DEAD on shutdown 7 years ago
David Wilson a53e85ff69 tests: stubs for future whitelist/blacklist tests. 7 years ago
dw feacb2bd40
Merge pull request #80 from moreati/sins-of-the-parent
Fix/split test_master tests following split of mitogen.master -> mitogen.parent
7 years ago
dw d708405126
Merge pull request #82 from moreati/imported-via-the-scenic-route
Fix TypeError while initiliazing ImporterMixin
7 years ago
Alex Willmer 83c0111b51 Fix TypeError while initiliazing ImporterMixin
Since f44356af32 mitogen.core.Importer()
takes a Router instance.
7 years ago
Alex Willmer 49b6c586e3 FIx syntax error in FindRelatedImportsTest.test_django_db_models 7 years ago
Alex Willmer 5ba2db0794 Split IterReadTest & WriteAllTest into test_parent
This matches their respective functions under test, which now reside in
mitogen.parent.
7 years ago
Alex Willmer f114c5951b Adjust unittest for master -> parent split
Tests should now match changes in
4d31300dd0
7 years ago
David Wilson 8ef87bea6a select: clean up API. 7 years ago
David Wilson e01632c431 Move django test script into permanent test 7 years ago
David Wilson 85934d101f tests: ensure strace is available in the docker image..
..and enable privileged=True since that's needed for ptrace()
7 years ago
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