summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Python 3 compat: Fix all Travis test failurestest2Jakub Stasiak2015-02-135-25/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch consists of the following changes: * Splitting eventlet.greenio into base, py2 and py3 parts (eventlet.greenio should be exporing the same public objects). This change is motivated by the size and the number of conditions present in the current greenio code * Connected to the first point: implementing almost completely new GreenPipe callable utilizing parts of old GreenPipe code but dropping _fileobject/SocketIO inheritance in favour of io.FileIO and making use of patched _pyio.open function which wraps raw file-like object in various readers and writers (they take care of the buffering, encoding/decoding etc.) * Implementing (from scratch or updating existing versions) green versions of the following modules: * http.* (needed by Python 3's urllib) * selectors (Python >= 3.4, used in subprocess module) * urllib.* (needed by various tests and we were already exposing green urllib) * Modifying some tests to make tests pass, which includes: * unicode/bytestring issues * modifying wsgi_test_conntimeout.py to not pass bufsize and close arguments to ExplodingSocketFile - on Python 3 it inherits from SocketIO, which doesn't deal with buffering at all as far as I can see * Random cleaning up and reorganizing * Requiring Python 3.x tests to pass for the whole build to pass Known issues: * code repetition * naming inconsistencies * possibly breaking some external code using private eventlet.greenio attributes Closes https://github.com/eventlet/eventlet/issues/108 Affects https://github.com/eventlet/eventlet/issues/6 (I'd call it an experimental support) Should help for https://github.com/eventlet/eventlet/issues/145 Should help for https://github.com/eventlet/eventlet/issues/157
* Tests: Provide listener details on nonempty hubJakub Stasiak2015-02-121-4/+14
|
* Stop skipping a test unnecessarilyJakub Stasiak2015-02-111-3/+3
|
* Python 3 compat: Fix patcher and hub testsJakub Stasiak2015-02-101-4/+5
|
* Python 3 compat: Improve testsJakub Stasiak2015-02-091-11/+15
|
* Use keyword argument here to make it easier to readJakub Stasiak2015-02-091-1/+1
|
* fix for already closed socketsDavid Szotten2015-02-081-0/+6
|
* Fix typos detected by toolkit misspellingsChangBo Guo(gcb)2015-02-075-6/+6
| | | | | | | * pip install misspellings * git ls-files | grep -v locale | misspellings -f - Closes GH #194
* Handle EPIPE errors during tests when remote end closes connectionissue178Johannes Erdfelt2014-12-221-12/+17
| | | | | | | | | Closes #178 Some tests will induce behavior that causes the remote end to close the connection before all of the data has been written. With small kernel buffer sizes, this can cause an EPIPE error. Since the test expects an early close, this can be ignored.
* Fix monkey_patch() on Python 3py3_importlibVictor Stinner2014-12-212-0/+35
| | | | The importlib module must use real thread locks, not eventlet.Semaphore.
* tests: db_pool: test .clear() updates .current_size GH-139Sergey Shepelev2014-12-211-42/+58
|
* Fix timers not cleaned up on MySQL test skipsCorey Wright2014-12-151-2/+2
| | | | | | | | | | | If it's determined that a MySQL test should be skipped during setUp(), but after the parent setUp() has been called, having created and started a timer, then tearDown() is never called and the timer never cancelled, but left to expire during some future, unrelated test. Move call to parent setUp() to end of child setUp() to insure that the timer is only created and started after it's been determined that the test shouldn't be skipped (ie create_db()).
* Fix string concatenation errorsSteven Hardy2014-11-151-0/+32
| | | | | | | | | | | | Some error paths concatenate the output of "type" with a string, which gives TypeError: cannot concatenate 'str' and 'type' objects, rather than describing the actual error. Closes #149 GH Closes #150 GH Conflicts: eventlet/hubs/twistedr.py
* Python 3 compat: Improve WebSocket and testsJakub Stasiak2014-11-131-12/+12
|
* Fix __str__ method on the TimeoutExpired exception class. Also fix argumentTomaz Muraus2014-11-121-3/+6
| | | | | | | | | | order in the class constructor so it uses the same order as the actual class from Python 3.3 and above. TimeoutExpired from Python 3.3 takes arguments in the following order: cmd, timeout, output. See https://github.com/python/cpython/blob/master/Lib/subprocess.py#L388
* pep8: Fix remaining issuesJakub Stasiak2014-11-121-2/+9
|
* Restore removed tests and make Python 3 compatibleJakub Stasiak2014-11-121-2/+36
| | | | This restores tests removed in 23beb7d43e
* Improve PEP8 conformanceJakub Stasiak2014-11-111-1/+2
|
* pep8: trivial fixesChristoph Gysin2014-11-113-5/+5
| | | | Closes #161 (GH)
* Python 3 compat; Improve WSGI, WS, threading and testsJakub Stasiak2014-11-113-104/+81
| | | | | | | | | | | | | | | | | | | This includes: * patching more tests to pass * removing few unit tests which I think are redundant * repeating SSL socket reads in a loop to read all data (I suspect this is related to the fact that writelines is used in the server code there and Python 3 writelines calls write/send repeatedly while on Python 2 it calls it once; on one hand there's no guarantee that single recv/read will return all data sent by the server, on the other hand it's quite suspicious that the number of required reads seems to be connected to the number of sends on the other side of the connection) * working through Python 2/Python 3 threading and thread differences; the lock code I used is the simplest way I could make the tests pass but will likely need to be modified in order to match the original This commit includes 6bcb1dc and closes GH #153
* wsgi.input: Make send_hundred_continue_headers a public APITushar Gohad2014-11-061-0/+154
| | | | | | | | | | | | | | | | | | | | | | | Per HTTP RFC 7231 (http://tools.ietf.org/html/rfc7231#section-6.2) a client is required to be able to process one or more 100 continue responses. -- RFC 7231 -------------------- 6.2. Informational 1xx [snip] A client MUST be able to parse one or more 1xx responses received prior to a final response, even if the client does not expect one. A user agent MAY ignore unexpected 1xx responses. ... -------------------------------- This patch adds a send_hundred_continue_headers() public API method to wsgi.input, thus allowing WSGI apps to send more than one 100- continue response. This does not change existing semantics for the first 100-continue response sent on read() or readline().
* Improve Python 3 compat: WSGI testsJakub Stasiak2014-10-311-2/+2
|
* hubs: drop Twisted supportSergey Shepelev2014-10-295-304/+2
|
* Fix "maximum recursion depth exceeded in GreenSocket.__del__"Jakub Stasiak2014-10-161-1/+19
| | | | | Closes #137 Closes #148
* Refactor capturing stderr into a context managerJakub Stasiak2014-10-152-19/+9
|
* Python 3 compat: Improve subprocess, WSGI and testsJakub Stasiak2014-10-132-41/+35
|
* Python 3 compat: Improve SSL and WSGI compatJakub Stasiak2014-10-111-10/+10
|
* Reformat with autopep8Jakub Stasiak2014-10-117-33/+37
|
* Python 3 compat: Improve various bitsJakub Stasiak2014-10-1010-166/+191
| | | | | | | | | | | | | | | | | | This includes changes to WSGI, websocket, bytes/str/unicode handling, SSL, backdoor, greenio and tests. Some comments and conditionals (PY2/PY3) were added for clarity GH issues: Closes #106 Closes #111 Closes #118 Closes #141 Incidentally should also close #135 (reopen if didn't) cc #6
* Remove most of the deprecated codeJakub Stasiak2014-10-1010-1151/+52
| | | | Closes GH #144
* green.socket: create_connection: UnboundLocalError on Python3gh-123-local-msgSergey Shepelev2014-09-051-0/+8
| | | | Fixes https://github.com/eventlet/eventlet/issues/123
* greenio: manual memory leak testSergey Shepelev2014-09-012-0/+83
| | | | https://github.com/eventlet/eventlet/pull/125
* wsgi: pep8 fixesTushar Gohad2014-08-271-38/+44
| | | | Signed-off-by: Tushar Gohad <tushar.gohad@intel.com>
* PEP-8 fixesSergey Shepelev2014-08-2752-362/+412
|
* wsgi: Support optional headers w/ "100 Continue" responsesTushar Gohad2014-08-241-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since WSGI is all about a single response to a single request, in order for servers to process a PUT as a single HTTP request and at the same time pass **hints** back to the client (for example, a payload type that the server can accept, or to inform the client that the server expects to receive payload metadata at the end of the payload transfer, etc), "100 Continue" response headers is pretty much only place to add these hints. This is consistent with **RFC2616, section 10.1**: 10.1 Informational 1xx This class of status code indicates a provisional response, consisting only of the **Status-Line** and **optional headers**, and is terminated by an empty line. Openstack Swift has an immediate use case for this feature where the object server will use an "Accept-Payload-Footer: 1" like header to hint the proxy server to send a payload footer after it has finished transmitting the payload (for sending metadata for an erasure coded or encrypted payload, enforcing end-to-end Etag checks, etc). Addresses eventlet issue/enhancement #126 Signed-off-by: Tushar Gohad <tushar.gohad@intel.com>
* tests: Update bundled mock library to 1.0.1Jakub Stasiak2014-07-181-129/+2251
|
* wsgi: websocket: Reformat code + tests (PEP-8)Jakub Stasiak2014-07-183-225/+234
|
* Python 3 compatibility fixesJakub Stasiak2014-07-186-140/+144
| | | | | | Closes GH-102 Closes GH-103 Closes GH-104
* greenio, tpool: python3 compatibilitySergey Shepelev2014-07-181-1/+1
| | | | | | | Also: - PEP-8 - check both EAGAIN/EWOULDBLOCK - use system implementation of GreenPipe.readinto()
* tests: deprecated TestCase.assert_() -> assert keywordSergey Shepelev2014-07-1621-230/+230
| | | | https://github.com/eventlet/eventlet/issues/101
* db_pool: customizable connection cleanup function; Thanks to Avery FaySergey Shepelev2014-07-101-12/+63
| | | | | | | | | https://github.com/eventlet/eventlet/pull/64 Also: - PEP8 - except Exception - .put() must not catch SystemExit
* python3 compatibilitySergey Shepelev2014-04-2422-416/+463
| | | | | | | | | | | | - __next__ for iterator interface - six.next() to get next item - list(dict.keys()) - popen2.popen4 -> subprocess - s2b -> b"..." literals - deprecated assertEquals -> assertEqual - hub_test test_fork using run_python - 1L -> 1 long literal - many PEP-8 fixes
* python3 compatibilitySergey Shepelev2014-04-234-53/+53
| | | | | | | - dict.items().pop() in proc - str/bytes in backdoor, api_test, ssl_test, test__refcount - import httplib from six - PEP-8 fixes
* PEP-8 fixes, tox runs pep8 checkSergey Shepelev2014-04-2311-129/+158
| | | | | For now, pep8 check is only run for some files known to be clean, we should clean the rest and enable pep8 check for all files then.
* python3 compatibility: print functionSergey Shepelev2014-04-239-76/+87
|
* python3 compatibility: range, zip, StringIOViktors2014-04-234-26/+18
|
* wsgi: capitalize_response_headers optionSergey Shepelev2014-04-221-83/+118
| | | | | | | Setting this to False provides compatibility with broken clients which expect response header names in particular case, such as ETag by AWS Java SDK. https://github.com/eventlet/eventlet/issues/80
* pypy compatibilityJakub Stasiak2014-04-159-25/+61
|
* python3 compat fixesVictor Sergeyev2014-03-2815-145/+166
| | | | https://github.com/eventlet/eventlet/pull/59
* queue: Make join not wait if there are no unfinished tasksJakub Stasiak2014-03-271-0/+4
| | | | This fixes GitHub issue #54