From b0da2dd952ec7058494b3418a6111ee026e506df Mon Sep 17 00:00:00 2001 From: Ceres Cartman Date: Fri, 13 Sep 2019 00:58:00 +0800 Subject: [PATCH 1/2] Fix async iterator protocol in aiomysql.utils._SAConnectionContextManager --- aiomysql/utils.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/aiomysql/utils.py b/aiomysql/utils.py index 9b74b9df..dfedc86f 100644 --- a/aiomysql/utils.py +++ b/aiomysql/utils.py @@ -70,9 +70,19 @@ async def __aexit__(self, exc_type, exc, tb): class _SAConnectionContextManager(_ContextManager): - async def __aiter__(self): - result = await self._coro - return result + def __aiter__(self): + return self + + async def __anext__(self): + if self._obj is None: + self._obj = await self._coro + + try: + return (await self._obj.__anext__()) + except StopAsyncIteration: + await self._obj.close() + self._obj = None + raise class _TransactionContextManager(_ContextManager): From 0434fe13f4b3ae5f4d02aed1ab8cdf0818f58f1a Mon Sep 17 00:00:00 2001 From: Ceres Cartman Date: Fri, 13 Sep 2019 00:58:39 +0800 Subject: [PATCH 2/2] Add Python 3.7 in matrix --- .travis.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.travis.yml b/.travis.yml index d5c48828..01650c7d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,10 @@ +dist: xenial language: python python: - 3.5.3 - 3.6 + - 3.7 env: matrix: @@ -11,22 +13,27 @@ env: services: - docker + - mysql matrix: include: - python: 3.6 + dist: trusty env: PYTHONASYNCIODEBUG= addons: mariadb: 5.5 - python: 3.6 + dist: trusty env: PYTHONASYNCIODEBUG=1 addons: mariadb: 10.0 - python: 3.6 + dist: trusty env: PYTHONASYNCIODEBUG= addons: mariadb: 10.1 - python: 3.6 + dist: trusty env: PYTHONASYNCIODEBUG= addons: mysql: 5.7