Commit Graph

1862 Commits

Author SHA1 Message Date
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
Miroslav
237320a539 Minor fixes.
Renaming prep_message method to shorten_message.
Docstring.
\u2026 instead of ....
max_width parameter.
2018-03-03 22:12:56 +02:00
Miroslav
0dcdb6c3cc Finalization of tests. Conditions rewritten again. 2018-03-02 23:40:58 +02:00
Miroslav
d151c6c322 Initial tests. New conditions. 2018-03-01 01:18:05 +02:00
Maximilian Hils
944e81dcfc clean up ProxyConfig
some of these options weren't even used anymore,
others only in one place where it makes sense to use options directly.
2018-02-27 19:05:59 +01:00
Aldo Cortesi
7bd63ee713 Start consolidating core options
This is a preparatory patch that paves the way to consolidating our core
options in the core addon. It amalgamates the core_option_validation and core
addons, prepares the test suite for a world where options live in core, and
moves over two trivial options as a trial balloon.

From here, things will get harder, but at the end of the process we'll have a
core that's responsive to options.
2018-02-26 11:26:32 +13:00
Aldo Cortesi
e5cdc20eb8 Split dumper_filter off from view_filter
These don't even do the same thing.
2018-02-26 09:43:15 +13:00
Aldo Cortesi
2fb85553cc Revamp verbosity options
Split verbosity into termlog_verbosity and console_eventlog_verbosity.

This patch also removes printing to console if there are unknown options in the
command-line. Options now live in separate addons, so having uknown options
remaining is common and expected. We definitely shoould have some other way for
users to see what was ignored so they can catch typos and the like, but that's
a different patch.
2018-02-26 09:02:24 +13:00