Aldo Cortesi
a4a48a96d6
Merge pull request #3078 from kajojify/expanduser
...
Fix #3002 . Auto-expanding for tilda.
2018-04-26 21:02:10 +12:00
Aldo Cortesi
b18e0fa2bc
Merge pull request #3071 from cortesi/tickless
...
asyncio: shift script reloading out of the tick event
2018-04-26 11:47:07 +12:00
Miroslav
ea6fab09b5
Fix #3002 . Auto-expanding
2018-04-26 01:35:44 +03:00
Maximilian Hils
19ceb6f49a
fix pytest invocation errors
2018-04-25 14:00:50 +02:00
Aldo Cortesi
95e690ba31
test: shift test_data out of our public API
2018-04-23 19:16:33 +12:00
Aldo Cortesi
0ba10b6109
addons/script: improve relability of reload test
...
The granularity of mtime is surprisingly bad. Make the tests more robust
against this, and promote has_log back to a public method, now that we have a
few legitimate examples.
2018-04-23 13:19:20 +12:00
Aldo Cortesi
44016a0de5
asyncio: shift script reloading out of the tick event
...
The tick event is a nasty compromise, left over from when we didn't have an
event loop. This is the first patch in a series that explores moving our
built-in addons to managing coroutines on the eventloop directly for periodic
tasks.
2018-04-23 10:28:18 +12:00
Aldo Cortesi
ef4db52887
Ignore signal errors on windows + various fixes
...
- Ignore the NotImplementedError raised by add_signal_handler on Windows.
- Entrypoints return an integer exit code, or None. Adjust our type annotations
and code to suit.
Fixes #3061
2018-04-17 08:20:52 +12:00
Aldo Cortesi
565146311a
asyncio: clarify shutdown semantics
...
This patch clarifies proxy shutdown, and specifies that the master.shutdown()
method is thread-save.
2018-04-16 10:16:51 +12:00
Aldo Cortesi
850c855495
Clean up test/helper_tools directory
2018-04-16 09:20:22 +12:00
Aldo Cortesi
b663a224a3
Improve benchmarking
...
- The benchmark addon now manages setting up and tearing down the backend and
traffic processes itself.
- Use wrk instead of hey. I get more consistent results with this tool, and hey
shows a strange tail-latency bump that seems artificial.
- Make termination behaviour simpler. The bencmark revealed a bug where .done
events were not called if the proxy was shut down by an addon.
2018-04-16 09:19:14 +12:00
Aldo Cortesi
5f74adc2df
Merge pull request #3059 from obscure76/enh/issue-3053
...
fix Python 3.6 variable type annotations #3053
2018-04-16 07:35:20 +12:00
oscure76
0e984e1442
fix Python 3.6 variable type annotations #3053
2018-04-14 16:24:41 -07:00
Aldo Cortesi
865a373bd3
Merge pull request #3050 from kira0204/error-script
...
Handling user script's exceptions, fix #2839
2018-04-15 10:12:44 +12:00
Aldo Cortesi
8609de6f31
readfile: add a readfile_filter option
...
* Add a readfile_filter option that filters flows on read.
* Adjust test suite for asyncio.
* Add asynctest as a dev dependency.
2018-04-14 11:52:02 +12:00
kira0204
6780e5025a
Handling user script exceptions, fix #2839
2018-04-10 08:33:40 +05:30
Aldo Cortesi
9dcd15d350
asyncio: ditch the handler context
...
There are a few reasons for this. First, logs are now async, and can be called
at any time. Second, the event loop is thread local, so there can only ever be
one master per thread. These two things together completely obviate the need
for a handler context.
2018-04-07 09:04:14 +12:00
Aldo Cortesi
6a08ef465f
asyncio: remove master.add_log, in favor of a persistent log.Log instance
2018-04-07 09:02:10 +12:00
Aldo Cortesi
ea213782d8
asyncio: remove test master.has_log
...
Now that logs are async, using this call is almost always a mistake. Signal
this by making it semi-private. The method may go away entirely down the track.
2018-04-07 09:02:10 +12:00
Aldo Cortesi
80f2bac356
asyncio: move log mechanism onto the event loop
...
Logs are now asynchronous, with a log entry pushed onto the event loop for
handling. To support this, the test mechanism grows an await_log method that
waits for a log entry to appear.
2018-04-07 09:02:10 +12:00
Aldo Cortesi
0fa1280daa
asyncio simplify: we don't need a queue for proxy->main loop comms
...
Instead, we just schedule coroutines directly onto the core loop.
2018-04-07 08:59:08 +12:00
Aldo Cortesi
cdbe6f97af
asyncio: remove last vestiage of channel input from master
2018-04-07 08:59:08 +12:00
Aldo Cortesi
506ccc5693
Merge pull request #3031 from itzikBraun/add-httpie-export
...
added option to export request as httpie command
2018-04-06 10:02:02 +12:00
Aldo Cortesi
4177f50a0f
Merge pull request #2971 from kira0204/user-script-exception
...
A unified handler for user's scripts exception
2018-04-06 10:01:35 +12:00
Maximilian Hils
50ea3aa420
fix http retry timeout
...
this fixes #3038
2018-04-05 15:30:04 +02:00
Aldo Cortesi
659fceb697
minor fixes
2018-04-03 10:26:09 +12:00
Aldo Cortesi
7e73e5fa51
asyncio: factor out test server startup wait
2018-04-03 09:46:11 +12:00
itzikBraun
29f4164344
added option to export request as httpie command
2018-04-02 12:57:33 +02:00
Aldo Cortesi
14f461c5d5
asyncio: cleanup and lint
...
Also fix a racy websocket test.
2018-04-02 16:41:49 +12:00
Aldo Cortesi
a3da43d3e5
asyncio: test cleanup
...
Also silence asyncio logs. We sometimes end up with messages on the queue that
need to be ignored when the proxy shuts down, and asyncio complains loudly
about this.
2018-04-02 14:51:14 +12:00
Aldo Cortesi
2b040ff093
asyncio: make http2 tests pass
2018-04-02 11:03:05 +12:00
Aldo Cortesi
28a8ddc0e8
asyncio: fix a few remaining issues in proxy/test_server.py
2018-04-02 09:46:02 +12:00
Aldo Cortesi
3cc5d81a4a
asyncio: fix channel interface and tests
...
We now need to synthesize a tick event when changing addons in tests, because
tick is asynchronously called on the event loop.
2018-04-01 11:37:35 +12:00
Aldo Cortesi
54170ee657
asyncio: start a test loop for unit tests
...
Also move signal handling out of master. These only work in the main thread,
and properly belong in main.py.
2018-04-01 09:46:32 +12:00
Aldo Cortesi
976b2018a3
asyncio: clean up event loop acquisition
...
We now acquire the event loop through asyncio.get_event_loop, avoiding having
to pass the loop explicity in a bunch of places. This function does not return
the currently running loop from within coroutines in versions of Python prior
to 3.6.
2018-04-01 09:46:32 +12:00
Aldo Cortesi
a2d4519354
asyncio: brutally rip out our old queue mechanism
2018-04-01 09:46:32 +12:00
Thomas Kriechbaumer
46f8901b8c
Python 3.5 is dead -- long live Python 3.6!
...
fixes #2266
2018-03-31 18:46:32 +02:00
kira0204
22b5149777
use error handler function
2018-03-26 03:28:28 +05:30
Thomas Kriechbaumer
eb297d82aa
fix Tornado 5.0 event loop
...
https://github.com/tornadoweb/tornado/issues/2183#issuecomment-371001254
2018-03-24 11:19:04 +01:00
Maximilian Hils
fed54fa3d0
don't crash if server address is unknown, fix #2969
2018-03-23 04:26:46 +01:00
Aldo Cortesi
c5ad026cbe
bench: Add some very simple manual benchmarking helpers
...
This includes a profiler addon that we might consider for promotion to a
builtin down the track.
2018-03-17 10:06:46 +13:00
Maximilian Hils
2001184b6c
Merge pull request #2956 from kira0204/test-for-2850
...
Test for #2850
2018-03-15 00:29:52 +01:00
kira0204
8aad2d63cf
adding command
2018-03-12 09:13:29 +05:30
kira0204
5dcc3b4ff8
Testing using addon
2018-03-12 00:28:43 +05:30
kira0204
167e01acdf
fixing lint
2018-03-07 16:12:12 +05:30
kira0204
b8fbe71c93
User script exception handler[squash]
...
fixing 2837, added test
unified-function
deleting the wrong commit
2018-03-07 13:18:19 +05:30
kira0204
57197c3e6c
using asserts
2018-03-07 06:34:16 +05:30
kira0204
be50f3f481
wrong additions
...
test-for-2850
few fixes
mock testing
Typo error
2018-03-06 05:44:05 +05:30
Aldo Cortesi
bc6550abc5
Merge pull request #2945 from kajojify/shortening
...
Polite shortening of statusbar messages. Fix #1433
2018-03-05 09:07:18 +13:00
Maximilian Hils
a2740ee4ae
Merge pull request #2868 from kira0204/data-crash
...
Fix crashing when editing form with random data, fix #2794
2018-03-04 19:53:15 +01:00