From 82e150a13ac78a1f24de27977d8a40883bc3d6e7 Mon Sep 17 00:00:00 2001 From: Richard Si <63936253+ichard26@users.noreply.github.com> Date: Wed, 30 Mar 2022 16:40:50 -0400 Subject: [PATCH] Keep tests working w/ upcoming aiohttp 4.0.0 (#2974) aiohttp.test_utils.unittest_run_loop was deprecated since aiohttp 3.8 and aiohttp 4 (which isn't a thing quite yet) removes it. To maintain compatibility with the full range of versions we declare to support, test_blackd.py will now define a no-op replacement if it can't be imported. Also, mypy is painfully slow to use without a cache, let's reenable it. --- mypy.ini | 3 --- tests/test_blackd.py | 15 +++++++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/mypy.ini b/mypy.ini index 3bb92a6..8ee9068 100644 --- a/mypy.ini +++ b/mypy.ini @@ -32,9 +32,6 @@ warn_unreachable=True disallow_untyped_defs=True check_untyped_defs=True -# No incremental mode -cache_dir=/dev/null - [mypy-black] # The following is because of `patch_click()`. Remove when # we drop Python 3.6 support. diff --git a/tests/test_blackd.py b/tests/test_blackd.py index 37431fc..6174c45 100644 --- a/tests/test_blackd.py +++ b/tests/test_blackd.py @@ -1,4 +1,5 @@ import re +from typing import Any from unittest.mock import patch from click.testing import CliRunner @@ -8,12 +9,18 @@ from tests.util import read_data, DETERMINISTIC_HEADER try: import blackd - from aiohttp.test_utils import AioHTTPTestCase, unittest_run_loop + from aiohttp.test_utils import AioHTTPTestCase from aiohttp import web +except ImportError as e: + raise RuntimeError("Please install Black with the 'd' extra") from e + +try: + from aiohttp.test_utils import unittest_run_loop except ImportError: - has_blackd_deps = False -else: - has_blackd_deps = True + # unittest_run_loop is unnecessary and a no-op since aiohttp 3.8, and aiohttp 4 + # removed it. To maintain compatibility we can make our own no-op decorator. + def unittest_run_loop(func: Any, *args: Any, **kwargs: Any) -> Any: + return func @pytest.mark.blackd -- 2.39.5