Use native async

Also remove a test that isn't that useful
This commit is contained in:
Andrew Rabert 2018-12-13 17:38:19 -05:00
parent 8cc566acfd
commit ad19d64911
5 changed files with 18 additions and 32 deletions

View file

@ -26,7 +26,7 @@ call to the ``get`` method as well as a separate metric for the database query.
from sprockets.mixins import mediatype
from sprockets.mixins.metrics import statsd
from tornado import gen, web
from tornado import web
import queries
def make_application():
@ -47,10 +47,9 @@ call to the ``get`` method as well as a separate metric for the database query.
super(MyHandler, self).initialize()
self.db = queries.TornadoSession(os.environ['MY_PGSQL_DSN'])
@gen.coroutine
def get(self, obj_id):
async def get(self, obj_id):
with self.execution_timer('dbquery', 'get'):
result = yield self.db.query('SELECT * FROM foo WHERE id=%s',
result = await self.db.query('SELECT * FROM foo WHERE id=%s',
obj_id)
self.send_response(result)

View file

@ -1,7 +1,8 @@
import asyncio
import signal
from sprockets.mixins.metrics import statsd
from tornado import concurrent, gen, ioloop, web
from tornado import ioloop, web
class SimpleHandler(statsd.StatsdMixin, web.RequestHandler):
@ -14,9 +15,8 @@ class SimpleHandler(statsd.StatsdMixin, web.RequestHandler):
"""
@gen.coroutine
def get(self):
yield gen.sleep(0.25)
async def get(self):
await asyncio.sleep(0.25)
self.set_status(204)
self.finish()

View file

@ -1,10 +1,11 @@
import asyncio
import contextlib
import logging
import os
import socket
import time
from tornado import gen, iostream
from tornado import iostream
LOGGER = logging.getLogger(__name__)
@ -134,12 +135,11 @@ class StatsDCollector:
sock.set_close_callback(self._tcp_on_closed)
return sock
@gen.engine
def _tcp_on_closed(self):
async def _tcp_on_closed(self):
"""Invoked when the socket is closed."""
LOGGER.warning('Not connected to statsd, connecting in %s seconds',
self._tcp_reconnect_sleep)
yield gen.sleep(self._tcp_reconnect_sleep)
await asyncio.sleep(self._tcp_reconnect_sleep)
self._sock = self._tcp_socket()
def _tcp_on_connected(self):

View file

@ -2,7 +2,7 @@ import logging
import re
import socket
from tornado import gen, iostream, locks, tcpserver, testing
from tornado import iostream, locks, tcpserver, testing
LOGGER = logging.getLogger(__name__)
@ -67,11 +67,10 @@ class FakeStatsdServer(tcpserver.TCPServer):
self.socket.close()
self.socket = None
@gen.coroutine
def handle_stream(self, stream, address):
async def handle_stream(self, stream, address):
while True:
try:
result = yield stream.read_until_regex(self.TCP_PATTERN)
result = await stream.read_until_regex(self.TCP_PATTERN)
except iostream.StreamClosedError:
break
else:

View file

@ -1,9 +1,10 @@
import asyncio
import itertools
import socket
import unittest
from unittest import mock
from tornado import gen, iostream, testing, web
from tornado import iostream, testing, web
from sprockets.mixins.metrics import statsd
from sprockets.mixins.metrics.testing import FakeStatsdServer
@ -12,10 +13,9 @@ import examples.statsd
class CounterBumper(statsd.StatsdMixin, web.RequestHandler):
@gen.coroutine
def get(self, counter, value):
async def get(self, counter, value):
with self.execution_timer(*counter.split('.')):
yield gen.sleep(float(value))
await asyncio.sleep(float(value))
self.set_status(204)
self.finish()
@ -75,18 +75,6 @@ class TCPStatsdMetricCollectionTests(testing.AsyncHTTPTestCase):
'protocol': 'tcp',
'prepend_metric_type': True})
def test_tcp_reconnect_on_stream_close(self):
path_sleep = 'tornado.gen.sleep'
path_statsd = self.application.statsd
with mock.patch(path_sleep) as gen_sleep, \
mock.patch.object(path_statsd, '_tcp_socket') as mock_tcp_socket:
f = web.Future()
f.set_result(None)
gen_sleep.return_value = f
self.application.statsd._tcp_on_closed()
mock_tcp_socket.assert_called_once_with()
@mock.patch.object(iostream.IOStream, 'write')
def test_write_not_executed_when_connection_is_closed(self, mock_write):
self.application.statsd._sock.close()