app.templates_auto_reload = True
or app.config["TEMPLATES_AUTO_RELOAD"] = True
async with test_client.request(...) as connection:
connection.send(b"data")
await trio.sleep(A_LONG_TIME)
assert connection.as_response().status_code == 408
Hi @pgjones -- I've been dealing with a very weird issue with the SSE application I mentioned earlier. The whole code is here: https://github.com/esfoobar/quart-feed. But what's happening is that once I get into the SSE page (the home page) and I reload several times manually, I eventually get to this error:
ages/aiomysql/cursors.py", line 457, in _query
quartfeed_web_1 | await conn.query(q)
quartfeed_web_1 | File "/root/.local/share/virtualenvs/quartfeed_app-1k77iZGH/lib/python3.8/site-packages/aiomysql/connection.py", line 428, in query
quartfeed_web_1 | await self._read_query_result(unbuffered=unbuffered)
quartfeed_web_1 | File "/root/.local/share/virtualenvs/quartfeed_app-1k77iZGH/lib/python3.8/site-packages/aiomysql/connection.py", line 622, in _read_query_result
quartfeed_web_1 | await result.read()
quartfeed_web_1 | File "/root/.local/share/virtualenvs/quartfeed_app-1k77iZGH/lib/python3.8/site-packages/aiomysql/connection.py", line 1105, in read
quartfeed_web_1 | first_packet = await self.connection._read_packet()
quartfeed_web_1 | File "/root/.local/share/virtualenvs/quartfeed_app-1k77iZGH/lib/python3.8/site-packages/aiomysql/connection.py", line 561, in _read_packet
quartfeed_web_1 | packet_header = await self._read_bytes(4)
quartfeed_web_1 | File "/root/.local/share/virtualenvs/quartfeed_app-1k77iZGH/lib/python3.8/site-packages/aiomysql/connection.py", line 598, in _read_bytes
quartfeed_web_1 | data = await self._reader.readexactly(num_bytes)
quartfeed_web_1 | File "/usr/local/lib/python3.8/asyncio/streams.py", line 723, in readexactly
quartfeed_web_1 | await self._wait_for_data('readexactly')
quartfeed_web_1 | File "/usr/local/lib/python3.8/asyncio/streams.py", line 503, in _wait_for_data
quartfeed_web_1 | raise RuntimeError(
quartfeed_web_1 | RuntimeError: readexactly() called while another coroutine is already waiting for incoming data
Any ideas why this is happening?
conn2
object is different from the engine.acquire()
here: https://github.com/esfoobar/quart-feed/blob/master/db.py#L14
Hi @pgjones , I am now seeing a new error on tests that I hadn't seen before.
In my conftest
I have the following fixture:
@pytest.fixture(scope="module")
async def create_test_app(create_db):
app = create_app(**create_db)
await app.startup()
yield app
await app.shutdown()
It seems app.shutdown()
is throwing this error:
/root/.local/share/virtualenvs/quartfeed_app-1k77iZGH/lib/python3.8/site-packages/six.py:703:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/root/.local/share/virtualenvs/quartfeed_app-1k77iZGH/lib/python3.8/site-packages/six.py:703: in reraise
raise value
/root/.local/share/virtualenvs/quartfeed_app-1k77iZGH/lib/python3.8/site-packages/six.py:703: in reraise
raise value
/root/.local/share/virtualenvs/quartfeed_app-1k77iZGH/lib/python3.8/site-packages/pytest_asyncio/plugin.py:93: in finalizer
loop.run_until_complete(async_finalizer())
/usr/local/lib/python3.8/asyncio/base_events.py:616: in run_until_complete
return future.result()
/root/.local/share/virtualenvs/quartfeed_app-1k77iZGH/lib/python3.8/site-packages/pytest_asyncio/plugin.py:85: in async_finalizer
await gen_obj.__anext__()
conftest.py:67: in create_test_app
await app.shutdown()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <quart.app.Quart object at 0x7f9947998dc0>
async def shutdown(self) -> None:
for func in self.after_serving_funcs:
await func()
app_ctx = _app_ctx_stack.top
> await app_ctx.pop(None)
/root/.local/share/virtualenvs/quartfeed_app-1k77iZGH/lib/python3.8/site-packages/quart/app.py:2155: AttributeError
================================================================ short test summary info =================================================================
ERROR relationship/test_relationship.py::test_succesful_follow - AttributeError: 'NoneType' object has no attribute 'pop'
ERROR user/test_user.py::test_profile_edit - AttributeError: 'NoneType' object has no attribute 'pop'
Any ideas what is going on?
I'm using:
pytest = "==6.2.1"
pytest-asyncio = "==0.14.0"
application.py
I have these: @app.before_serving
async def create_db_conn():
database = await db_connection()
await database.connect()
app.dbc = database
@app.after_serving
async def close_db_conn():
await app.dbc.disconnect()