From 8fbe7a119da9af848541e8ce7678c03722ffc751 Mon Sep 17 00:00:00 2001 From: Andrew Svetlov Date: Tue, 15 Jan 2019 00:44:29 +0200 Subject: [PATCH] Disallow creation of aiohttp objects without running event loop (#3539) --- CHANGES/3539.removal | 1 + aiohttp/helpers.py | 10 ++-------- tests/test_helpers.py | 4 +++- 3 files changed, 6 insertions(+), 9 deletions(-) create mode 100644 CHANGES/3539.removal diff --git a/CHANGES/3539.removal b/CHANGES/3539.removal new file mode 100644 index 00000000000..97e0ae9ab18 --- /dev/null +++ b/CHANGES/3539.removal @@ -0,0 +1 @@ +Disallow creation of aiohttp objects (``ClientSession``, ``Connector`` etc.) without running event loop. diff --git a/aiohttp/helpers.py b/aiohttp/helpers.py index cbfbb1e194e..a59f9136819 100644 --- a/aiohttp/helpers.py +++ b/aiohttp/helpers.py @@ -12,7 +12,6 @@ import re import sys import time -import warnings import weakref from collections import namedtuple from contextlib import suppress @@ -45,7 +44,7 @@ from yarl import URL from . import hdrs -from .log import client_logger, internal_logger +from .log import client_logger from .typedefs import PathLike # noqa __all__ = ('BasicAuth', 'ChainMapProxy') @@ -266,12 +265,7 @@ def get_running_loop( if loop is None: loop = asyncio.get_event_loop() if not loop.is_running(): - warnings.warn("The object should be created from async function", - DeprecationWarning, stacklevel=3) - if loop.get_debug(): - internal_logger.warning( - "The object should be created from async function", - stack_info=True) + raise RuntimeError("The object should be created from async function") return loop diff --git a/tests/test_helpers.py b/tests/test_helpers.py index 6a712cadd68..0d842408a05 100644 --- a/tests/test_helpers.py +++ b/tests/test_helpers.py @@ -447,7 +447,9 @@ def test_proxies_from_env_http_with_auth(mocker) -> None: def test_get_running_loop_not_running(loop) -> None: - with pytest.warns(DeprecationWarning): + with pytest.raises( + RuntimeError, + match="The object should be created from async function"): helpers.get_running_loop()