Tim Abbott
be96cf809d
Move Zulip backend tests to zerver.tests.
2016-04-11 22:16:09 -07:00
Ashish
1bf644369f
Delete old route for json/update_active_status.
2016-04-11 21:38:23 -07:00
Ashish
78b9f45bf7
Delete old route for json/update_pointer.
2016-04-11 21:38:23 -07:00
Ashish
9429358795
Delete old route for /json/get_profile.
2016-04-11 21:38:23 -07:00
Ashish
42fe918138
Delete old route for json/get_old_messages.
2016-04-11 21:38:23 -07:00
Ashish
cfefc94200
Delete old route for json/set_alert_words.
2016-04-11 21:38:23 -07:00
Ashish
c0a218edfc
Delete old route for /json/update_message_flags.
2016-04-11 21:38:23 -07:00
Ashish
a12006d86f
Replace /json/update_active_status with REST style route.
2016-04-11 21:38:23 -07:00
Ashish
6356584f84
Replace /json/update_pointer with REST style route.
2016-04-11 21:38:23 -07:00
Ashish
b8ec8f5ef0
Replace /json/get_profile with REST style route.
2016-04-11 21:38:23 -07:00
Ashish
cb8da46bbf
Replace /json/get_old_messages with REST style route.
2016-04-11 21:38:23 -07:00
Ashish
8fc8717409
Replace json/set_alert_words with REST style route.
2016-04-11 21:38:22 -07:00
Ashish
41993ef2f5
Replace /json/update_message_flags with REST style route.
2016-04-11 21:38:22 -07:00
Ashish
dac4e58b91
Changes REST API backend route for /json/change_enter_sends.
2016-04-11 21:11:51 -07:00
Tim Abbott
b61d73fc93
Delete unused old StreamColor model.
2016-04-08 13:06:04 -07:00
Ashish
9cfa7d5765
Annotation of zerver/lib/handlers.py.
2016-04-08 11:18:36 -07:00
Ashish
86a8d3d0f5
Annotation of zerver/lib/rate_limiter.py
2016-04-08 11:18:36 -07:00
Ashish
2f8c717e52
List to tuple conversion for consistency in user rules zerver/lib/rate_limiter.py.
2016-04-08 11:18:35 -07:00
Ashish
8abca4f319
Annotation of zerver/lib/migrate.py
2016-04-08 11:18:35 -07:00
Ashish
038af80889
Annotation of zerver/lib/statistics.py
2016-04-08 11:11:58 -07:00
Ashish
2cf8731444
Annotation of zerver/lib/alert_words.py
2016-04-08 11:11:58 -07:00
Anindya Chakravarti
f3d03d89b4
Add integration for Yo App.
...
[includes some small tweaks by tabbott]
2016-04-08 11:02:10 -07:00
Tomasz Kolek
44ed9da7f0
Add pingdom integration.
2016-04-08 10:36:29 -07:00
Varshit
4e1060076d
Purge 'from typing import *' from zerver/.
...
This is a partial implementation of #636 .
2016-04-07 14:07:07 -07:00
Eklavya Sharma
5f03c1444e
Remove duplicate module zerver/views/webhooks.py.
...
Also move type annotations from zerver/views/webhooks.py to
appropriate files in zerver/views/webhooks.py.
2016-04-07 12:37:22 +05:30
Tim Abbott
75d134a9b2
Import tornado.autoreload explicitly.
...
Fixes #623 .
2016-04-03 16:52:23 -07:00
Ashish
909b0635c8
Add management command to test sending email.
...
Fixes : #622 .
[With cleanups/doc tweaks by tabbott]
2016-04-03 16:50:16 -07:00
Varshit
e0ef1a991e
Rewrite sanitize_name to better preserve filenames.
...
The previous version of sanitize_name dropped all unicode characters
and mangled filenames with multiple `.`s in the extension, leading to
confusing URLs for files uploaded to Zulip.
Fixes #321 .
[tweaked significantly by tabbott]
2016-04-03 16:26:12 -07:00
Tim Abbott
4a50336476
Add type: Any for tornado.ioloop.add_timeout return value.
2016-04-03 15:40:24 -07:00
Tim Abbott
b6dd6413d0
Add type: ignore for tornado_ioloop_logging Tornado versioning code.
2016-04-03 15:40:24 -07:00
Tim Abbott
53ab18eea0
Add type: ignore for chain.from_iterable.
2016-04-03 15:40:24 -07:00
Tim Abbott
9abd332c07
Add type: ignore for mock.Mock() monkey-patching.
2016-04-03 15:40:24 -07:00
Tim Abbott
0d40473818
Add type: ignore for empty list mypy bug.
2016-04-03 15:40:24 -07:00
Tim Abbott
3a2d5266d8
Add type: ignore for mypy super() bug.
2016-04-03 15:40:24 -07:00
Tim Abbott
e3ec3e2526
Add type: ignore for test_helpers monkey-patching.
2016-04-03 15:40:24 -07:00
Tim Abbott
6c999927ac
Add type: ignore for csrf_exempt decorator.
2016-04-03 15:40:23 -07:00
Tim Abbott
b7dcf2181f
Add PEP-484 type annotations to management commands.
2016-04-03 15:40:23 -07:00
Tim Abbott
32f8f85f8b
Add PEP-484 type annotations to zerver/*.py.
2016-04-03 15:40:23 -07:00
Tim Abbott
ee8be22160
Add PEP-484 type annotations to zerver/worker/.
2016-04-03 15:40:23 -07:00
Tim Abbott
ec7bb0b011
Add PEP-484 type annotations to zerver/views/.
2016-04-03 15:40:23 -07:00
Tim Abbott
2059f650ab
Add PEP-484 type annotations to zerver/lib/.
2016-04-03 15:40:23 -07:00
Tim Abbott
d8f7d89fb4
Add PEP-484 type annotations to zerver/models.py.
...
Done pair-programming with Guido.
2016-04-03 15:40:06 -07:00
Tim Abbott
b99313545e
Add PEP-484 type annotations to global dictionaties.
2016-04-03 15:40:06 -07:00
Tim Abbott
77be524dc4
Add PEP-484 type annotations to generator functions.
2016-04-03 15:40:05 -07:00
Tim Abbott
2c88085572
test_decorators: Clean up Request.REQUEST mocking.
2016-04-03 15:40:05 -07:00
Tim Abbott
96eb81e5d5
Add documentation of Zulip's markdown implementation.
2016-04-01 09:56:59 -07:00
Tim Abbott
a407f090e1
models: Document some of the more interesting model classes.
2016-04-01 09:34:45 -07:00
Ryan Moore
2fe0700f55
Update memcache -> remote cache in inline documentation.
2016-03-31 12:56:42 -07:00
Ryan Moore
beac606ce6
switch output stats memcached -> remote_cache
2016-03-31 12:54:29 -07:00
Ryan Moore
15cc3fde7b
s/memcache/remote_cache/ in models
2016-03-31 12:54:29 -07:00
Ryan Moore
1489f0992c
s/fill_memcached_cache/fill_remote_cache/g
2016-03-31 12:54:29 -07:00
Ryan Moore
18139fd86f
s/memcached_prefix/remote_cache_prefix/g
2016-03-31 12:54:29 -07:00
Ryan Moore
85b05d4e2b
s/memcached_output/remote_cache_output/g
2016-03-31 12:54:29 -07:00
Ryan Moore
5346e2ac23
s/memcached_count_delta/remote_cache_count_delta/g
2016-03-31 12:54:29 -07:00
Ryan Moore
1f120aa3a8
s/memcached_total/remote_cache_total/g
2016-03-31 12:54:29 -07:00
Ryan Moore
3c180b43df
s/memcached_stats/remote_cache_stats/g
2016-03-31 12:54:28 -07:00
Ryan Moore
1a2117292f
s/memcached_requests/remote_cache_requests/g
2016-03-31 12:54:28 -07:00
Ryan Moore
16c936f638
s/memcached_time/remote_cache_time/g
2016-03-31 12:54:28 -07:00
Ryan Moore
9f29b80f8a
s/items_for_memcached/items_for_remote_cache/g
2016-03-31 12:54:28 -07:00
Tim Abbott
723d8c288a
Add tornado autoreload hook to dump event queues on reload.
...
It's always been the case that in production, Tornado dumps all the
event queues when shut down so that they can be reloaded by the
replacement Tornado process. This never worked in development because
the codepath for auto-reload didn't go through either a signal or
sys.exit (it re-execs the process instead).
This meant that we didn't have a mechanism for testing the event queue
dump/load functionality in the development environment. We fix this
by adding such dumping/loading. However, this breaks the automatic
reloading of open browser windows on a server restart, so we add that
back in by adjusting the special `restart` events to pass a special
`immediate` flag when used in development.
This also has the benefit of removing the "Bad event queue" errors one
would get on every file save induced restart on the Python console.
2016-03-30 23:09:16 -07:00
Tim Abbott
59e2be2f5f
Notify clients when an event queue is garbage collected.
2016-03-30 23:09:14 -07:00
Tim Abbott
bf43db0dad
Send responses from fetch_events in dict format.
2016-03-30 22:04:09 -07:00
Tim Abbott
485e46f136
Wrap most of fetch_events in a try/except JsonableError.
...
This is a no-op right now, but we'll want the new structure for the
next commit, and splitting this out makes it a lot easier to read what
is actually changed in the next commit.
2016-03-30 22:02:32 -07:00
Tim Abbott
ad1494f8e0
Use dictionaries for passing data into event server subsystem.
...
This marshalls data in a portable format in preparation for splitting
the event queue server from the Tornado server.
2016-03-30 22:01:08 -07:00
Tim Abbott
6cd14af18f
events: Migrate client_type => client_type_name in marshalling code.
2016-03-30 22:00:50 -07:00
Tim Abbott
e9637a545f
Rename zerver.handlers to zerver.logging_handlers for clarity.
2016-03-30 21:48:38 -07:00
Tim Abbott
06b33da709
process_queue: Fix missing worker.setup() in single-threaded codepath.
2016-03-27 23:17:16 -07:00
Tim Abbott
cd2348e9ae
Run queue processers multithreaded in development.
...
This change drops the memory used for Python processes run by Zulip in
development from about 1GB to 300MB on my laptop.
On the front of safety, http://pika.readthedocs.org/en/latest/faq.html
explains "Pika does not have any notion of threading in the code. If
you want to use Pika with threading, make sure you have a Pika
connection per thread, created in that thread. It is not safe to share
one Pika connection across threads.". Since this code only connects
to rabbitmq inside the individual threads, I believe this should be
safe.
Progress towards #32 .
2016-03-20 18:04:24 -07:00
Tim Abbott
06e68d52ce
Remove dead AsyncDjangoHandler field.
2016-03-20 16:53:13 -07:00
Tim Abbott
0419430000
Enhance Tornado logging with Handler stats.
...
This was useful data for debugging handler/memory leaks.
2016-03-20 16:53:13 -07:00
Tim Abbott
e51811aa9e
Add comment documenting logic flow of fetch_events.
2016-03-20 16:53:13 -07:00
Tim Abbott
7fabfe9cb9
Add __repr__s for ClientDescriptor and AsyncDjangoHandler.
2016-03-20 16:53:13 -07:00
Tim Abbott
0b96e5e43f
Fix connection not being closed cleanly on event queue GC.
...
Apparently, our event queue garbage collection logic never actually
disconnected any existing handler objects.
We fix this by disconnecting the handler inside cleanup(), adding a
special check to avoid creating a pointless timeout object.
2016-03-20 16:53:13 -07:00
Tim Abbott
3f55e26a9f
Fix Tornado memory leak with synchronously handled requests.
...
The new Tornado handler tracking logic properly handled requests that
threw an exception or followed the RespondAsynchronously code path,
but did not properly de-allocated the handler in the syncronous case.
An easy reproducer for this is to load a new Zulip browser window;
that will leak 2 handler objects for the 2 synchronous requests made
from Django to Tornado as part of initial state fetching.
2016-03-20 16:53:13 -07:00
Tim Abbott
12a5a3a6e1
Actually fix main Tornado memory leak of handler objects.
...
This line appears to have been lost in rebasing from the original
implementation of 1396eb7022faec4c2d91553800a35781a96dd5bd; so the
previous fix actually only addressed the issue in a rare exception
case.
2016-03-20 16:53:12 -07:00
Tim Abbott
320428052a
Fix AsyncDjangoHandler view exception code path.
...
The recent Tornado memory leak fix
(1396eb7022
) didn't use the correct
variable name for the current handler ID, causing this cleanup code to
fail in the event that a view raised an exception.
2016-03-19 22:50:35 -07:00
Eklavya Sharma
9e3c3e14f5
Partially apply Python 3 libmodernize.fixes.fix_dict_six.
...
Refer to #256
2016-03-19 15:52:58 -07:00
Eklavya Sharma
176c507b0a
Removed calls to ifilterfalse.
...
Replaced calls to ifilterfalse by list comprehensions because
ifilterfalse is not part of python 3. Also changed some lists to sets
for faster lookup.
Refer to #256 .
2016-03-19 15:46:31 -07:00
Eklavya Sharma
851b0a871d
Fix python 3 decode error in zerver/tests.py.
...
Refer to #256 .
2016-03-19 15:46:18 -07:00
Eklavya Sharma
186efc6a6d
Handle unicode properly in camo.
...
In Bugdown's InlineHttpsProcessor.run, hex_encoded_url was not being
decoded to utf-8. This was causing problems in python 3.
Refer to #256 .
2016-03-19 15:46:07 -07:00
Tim Abbott
1396eb7022
Fix Tornado memory leak of handler objects.
...
In 2ea0daab19
, handlers were moved to
being tracked via the handlers_by_id dict, but nothing cleared this
dict, resulting in every handler object being leaked. Since a Tornado
process uses a different handler object for every request, this
resulted in a significant memory leak. We fix this by clearing the
handlers_by_id dict in the two code paths that would result in a
Tornado handler being de-allocated: the exception codepath and the
handler disconnect codepath.
Fixes #463 .
2016-03-17 18:33:59 -07:00
Tomasz Kolek
3e3a224607
Moved pagerduty webhook into its own file pagerduty.py
2016-03-14 20:44:50 -07:00
Tomasz Kolek
05dce01cee
Moved travis webhook into its own file travis.py
2016-03-14 20:44:45 -07:00
Tomasz Kolek
f640470fa4
Moved zendesk webhook into its own file zendesk.py
2016-03-14 20:44:42 -07:00
Tomasz Kolek
b3e5a256f5
Moved freshdesk webhook into its own file freshdesk.py
2016-03-14 20:44:41 -07:00
Tomasz Kolek
021c66fd9a
Moved stash webhook into its own file stash.py
2016-03-14 20:44:41 -07:00
Tomasz Kolek
7a4c9d243f
Moved deskdotcom webhook into its own file deskdotcom.py
2016-03-14 20:44:41 -07:00
Tomasz Kolek
087bd72814
Moved bitbucket webhook into its own file bitbucket.py
2016-03-14 20:44:41 -07:00
Tomasz Kolek
93b52f6f8e
Moved newrelic webhook into its own file newrelic.py
2016-03-14 20:44:41 -07:00
Tomasz Kolek
a2b31da045
Moved pivotal webhook into its own file pivotal.py
2016-03-14 20:44:41 -07:00
Tomasz Kolek
5ade895936
Moved jira webhook into its own file jira.py
2016-03-14 20:44:41 -07:00
Tomasz Kolek
a0512244b3
Moved beanstalk webhook into its own file beanstalk.py
2016-03-14 20:44:41 -07:00
Tomasz Kolek
6a3ab0605d
Moved github webhook into its own file github.py
2016-03-14 20:44:41 -07:00
Tomasz Kolek
8a0ed47751
moved webhooks to python package
2016-03-14 20:44:41 -07:00
Eklavya Sharma
c59185e119
Apply Python 3 futurize transform libfuturize.fixes.fix_print_with_import
...
Refer #256
2016-03-10 22:02:17 -08:00
Tim Abbott
df0d2a726d
python3: Add missing utf-8 encoding/decoding in various places.
2016-03-08 09:14:15 -08:00
Tim Abbott
a46647a87a
python3: Mark certain strings as unicode strings.
...
This is required in Python 3 since these strings are combined with
other unicode strings.
2016-03-08 09:14:11 -08:00
Tim Abbott
cbf9b7605a
Add test that all functions defined in urls.py actually exist.
...
This would have caught the create_user_backend issue introduced recently.
2016-02-07 19:21:53 -08:00
Reid Barton
6c6dc1d81d
Allow create user API to create any user in an open realm.
2016-02-07 19:19:19 -08:00
Reid Barton
9735025167
Refactor logic around restricted_to_domain.
...
Add a function email_allowed_for_realm that checks whether a user with
given email is allowed to join a given realm (either because the email
has the right domain, or because the realm is open), and use it
whenever deciding whether to allow adding a user to a realm.
This commit is not intended to change any behavior, except in one case
where the Zulip realm's domain was not being converted to lowercase.
2016-02-07 10:54:52 -05:00
Reid Barton
0755b51c2e
Move create_user_backend into zerver.views.users.
...
Commit aa33a0da
moved users views into their own file, but missed this one.
2016-02-07 10:54:48 -05:00
Reid Barton
4e5f18407d
Add comment in create_user_backend about not needing to invite users first.
2016-02-07 10:52:50 -05:00
Tim Abbott
1af7cbfd64
runtornado: Move more imports to the top of the file.
...
This is needed for adding more specific type annotations but is
otherwise counterproductive since it increases the diff from the
original.
2016-02-03 19:47:14 -08:00
Tim Abbott
2259ce62f8
tornado: Fix AsyncDjangoHandler get() and friends missing args/kwargs.
2016-02-03 19:47:14 -08:00
Tim Abbott
1d008576f2
QueueProcessingWorker: Add stub consume function and queue_name.
...
QueueProcessingWorker will now throw errors if there's a misconfigured
queue processor.
2016-02-03 19:47:14 -08:00
Tim Abbott
3469fd4bb2
Fix last remaining use of file() -> open().
2016-02-03 19:31:46 -08:00
Tim Abbott
d7b7ae2d0f
rundjango: Fix confusing return line in log_message_monkey.
2016-02-03 19:31:45 -08:00
Tim Abbott
05a40f11b3
runtornado: Add explicit return None.
2016-02-03 19:31:45 -08:00
Tim Abbott
37e987e250
Make realm_filters --show's empty list output more consistent.
2016-02-03 19:29:44 -08:00
Tim Abbott
3475a5c1ed
Fix test_runner.py fast_test_only return type.
2016-02-03 19:29:44 -08:00
Tim Abbott
fcc32b1093
Fix check_redis abuse of setting self.trim global.
2016-02-03 19:29:44 -08:00
Tim Abbott
693b9110df
Fix weird import of get_user_profile_by_email from decorator.py.
2016-02-03 19:29:44 -08:00
Tim Abbott
7595e4b05f
process_queue: Fix worker variable being accessed before initialization.
2016-02-03 19:29:44 -08:00
Tim Abbott
b34768837d
storage: Fix type error returning nothing in dry run case.
2016-02-03 19:29:44 -08:00
Tim Abbott
1ee0706511
Fix missing UTF-8 encoding.
2016-02-03 19:29:30 -08:00
Tim Abbott
10f15a2d00
middleware: Fix str/unicode type mismatch in statsd_path.
2016-02-03 19:29:07 -08:00
Tim Abbott
23705f4f16
Remove duplicate self._log_data initialization.
2016-02-03 19:29:07 -08:00
Tim Abbott
df1670ef59
Fix various float initialization to use 0.0 instead of 0.
...
This is needed to type-check these values.
2016-02-03 19:29:07 -08:00
Tim Abbott
fc02ea9f67
do_add_default_stream: Fix return value if stream exists.
...
Discovered using mypy static type checker.
2016-02-03 19:28:48 -08:00
Tim Abbott
620411c0ea
Fix type mismatches in streams.py.
2016-02-03 19:25:19 -08:00
Tim Abbott
e6e2584c5a
test_runner: Cleanup fast_tests_only types.
2016-02-03 19:25:19 -08:00
Tim Abbott
ee6062691a
Fix missing None in check_none_or return.
2016-02-03 19:25:18 -08:00
Tim Abbott
f03bfc5816
Fix missing prefix cache error output.
2016-02-03 19:25:18 -08:00
Tim Abbott
8654b57c7b
bugdown: Move definition of current_node above set_text function using it.
2016-02-03 19:25:18 -08:00
Tim Abbott
8dcdb1d8a8
actions: Remove duplicate import of RealmFilter.
...
Apparently we were importing it twice in the same import statement.
Discovered using mypy.
2016-02-03 19:25:17 -08:00
Tim Abbott
294b7aa7bd
EventsRegisterTest: Remove unused variable maxDiff.
...
Discovered using mypy.
2016-02-03 19:25:17 -08:00
Tim Abbott
e9f39922a0
notify_subscriptions_*: Fix use of leaked stream variable.
...
While I believe this actually produced correct output since users are
always subscribed to streams within their realm, this code was
definitely wrong.
Discovered using the mypy type-checking tool.
2016-02-03 19:25:17 -08:00
Tim Abbott
6c5cee2400
Cleanup 500s due to Google oauth2 errors.
...
These are user errors, albeit somewhat interesting ones, so they
should be logged (and return a user error response), not throw an
exception.
2016-02-02 23:08:20 -08:00
Tim Abbott
aad3bff193
Harden style rule for % comprehensions and fix existing errors.
2016-02-02 23:08:19 -08:00
Tim Abbott
5bacda3662
python3: Fix usage of .keys()/.values() to handle iterators.
...
This fixes the places where we use the result of .keys(), .items(),
and .values() that wouldn't work with an iterator to wrap them with
list().
2016-01-26 21:11:25 -08:00
Tim Abbott
f5de149976
python3: specify explicit sorting algorithm for subscriptions.
2016-01-26 21:11:25 -08:00
Tim Abbott
05a827c520
need_to_render_content: Fix comparison with None.
...
If the content wasn't rendered, both rendered_content and
rendered_content_version would be None. In addition to being
confusing, in Python 3, `None < 2` is an error and this code breaks.
2016-01-26 21:11:25 -08:00
Tim Abbott
bd0918cd5a
python3: Use zip from the six.moves package.
2016-01-26 21:11:24 -08:00
Tim Abbott
757e89260e
Migrate use of StringIO to Python 2+3 compatible six.moves.cStringIO.
...
And add a check for additional usage of the original StringIO module.
2016-01-26 21:09:43 -08:00
Tim Abbott
1f44417fc1
Switch to using Python 3 style division everywhere.
...
Also add testing for this to our Python 3 compatibility test suite.
2016-01-26 21:09:43 -08:00
Tim Abbott
6528b18ad3
Switch all urllib/urlparse usage to six.moves.urllib.
...
This provides Python 2+3 compatibility for our use of urllib.
Also add a test to avoid future regressions.
2016-01-26 21:09:43 -08:00
Tim Abbott
700055c194
Apply modernize transform libmodernize.fixes.fix_file.
...
This replaces use of file() with open() which is python 3 compatible,
and also adds it to our python 3 support test suite.
2016-01-26 21:09:42 -08:00
Tim Abbott
83dd51dcd6
Remove now-obsolete get_message_by_id_dbwarn transition code.
2016-01-26 21:05:11 -08:00
Tim Abbott
eecd1513b3
Don't access/store full Client objects in Tornado queue servers.
...
At present, we only do a few simple checks on the client type inside
the event system, and this saves database/memcached queries.
Note that this preserves the structure of the marshalled name in
to_dict/from_dict as client_type to avoid an unnecessary migration.
2016-01-26 21:04:32 -08:00
Tim Abbott
e3b6bfa3ca
Remove code for pickle event queue store.
...
Since we've had the JSON store in all environments for some time, we
no longer need this legacy code.
2016-01-26 20:59:34 -08:00
Tim Abbott
f6073d1708
Move HTTPResponse construction out of event_queue.py.
2016-01-26 20:59:19 -08:00
Tim Abbott
a9bf4b4cc7
Store the client name for the current handler in ClientDescriptor.
2016-01-26 20:58:01 -08:00
Tim Abbott
c7e3c3ce38
Look up client descriptors by handler_id.
...
Previously, client descriptors were referenced directly from the
handler object. Once we split the Tornado process into separate queue
and connection servers, these will no longer be in the same process,
so we need to reference them by ID instead.
2016-01-26 20:57:25 -08:00
Tim Abbott
ea6211c041
Allocate handler ids in AsyncDjangoHandler setup process.
2016-01-26 20:56:53 -08:00
Tim Abbott
ae760a351e
Move most of ClientDescriptor.finish_current_handler into library.
2016-01-26 20:56:08 -08:00
Tim Abbott
7df61fccbd
Add user_profile_email field to ClientDescriptor.
2016-01-26 20:55:59 -08:00
Tim Abbott
2ea0daab19
Track Tornado handlers by uniquely assigned IDs rather than objects.
...
This is early preparation for splitting apart Tornado into a queue
server and a frontend server.
2016-01-26 20:55:41 -08:00
Tim Abbott
8b42fdd0d7
Move get_events logic into a backend function in event_queue.py.
...
This commit is somewhat ugly, but its purpose is to be early
preparation for splitting Tornado into a queue server and a frontend
server, and this code belongs, by and large, in the queue server
component.
2016-01-26 20:51:54 -08:00
Tim Abbott
5a6154c8ba
test_helpers: Fetch streams from cache in subscribe_to_stream.
2016-01-26 20:41:01 -08:00
Tim Abbott
f9791558e9
test_runner: Support continuing running tests after a failure.
2016-01-26 20:41:01 -08:00