diff options
author | 2024-05-17 18:24:05 +0200 | |
---|---|---|
committer | 2024-05-17 18:49:32 +0200 | |
commit | acd3cb4f3b7bee5b1a4c0589951b582fe74ac230 (patch) | |
tree | 5ffdad265301a9c10e94e5dc36cb6c8b537d3b5c /dev-python/tornado/files | |
parent | sys-kernel/gentoo-kernel-bin: Bump to 6.8.10 (diff) | |
download | gentoo-acd3cb4f3b7bee5b1a4c0589951b582fe74ac230.tar.gz gentoo-acd3cb4f3b7bee5b1a4c0589951b582fe74ac230.tar.bz2 gentoo-acd3cb4f3b7bee5b1a4c0589951b582fe74ac230.zip |
dev-python/tornado: Add a pytest-8.2 fix (for revdeps)
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/tornado/files')
-rw-r--r-- | dev-python/tornado/files/tornado-6.4-pytest-8.2.patch | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/dev-python/tornado/files/tornado-6.4-pytest-8.2.patch b/dev-python/tornado/files/tornado-6.4-pytest-8.2.patch new file mode 100644 index 000000000000..21a2ed04d24a --- /dev/null +++ b/dev-python/tornado/files/tornado-6.4-pytest-8.2.patch @@ -0,0 +1,66 @@ +From c851aa8a949524b35f72c82b45a52353aa3c0558 Mon Sep 17 00:00:00 2001 +From: Ran Benita <ran@unusedvar.com> +Date: Sun, 28 Apr 2024 14:17:54 +0300 +Subject: [PATCH] testing: allow to instantiate an empty AsyncTestCase + +`unittest.TestCase` has a feature where it allows instantiating +`MyTestClass()` with the default method name `runTest` even if a +`runTest` method doesn't actually exist. This is documented in +`TestCase`'s docs under "Changed in version 3.2"[0]. + +Since version 8.2, pytest relies on this, and started breaking on +Tornado's `AsyncTestCase`[1]. + +Change `AsyncTestCase` to allow empty instatiation, by matching the +upstream code. + +[0] https://docs.python.org/3/library/unittest.html#unittest.TestCase +[1] https://github.com/pytest-dev/pytest/issues/12263 +--- + tornado/test/testing_test.py | 9 +++++++++ + tornado/testing.py | 12 +++++++++++- + 2 files changed, 20 insertions(+), 1 deletion(-) + +diff --git a/tornado/test/testing_test.py b/tornado/test/testing_test.py +index 0429feee83..8e2b8db428 100644 +--- a/tornado/test/testing_test.py ++++ b/tornado/test/testing_test.py +@@ -61,6 +61,15 @@ def test_subsequent_wait_calls(self): + self.io_loop.add_timeout(self.io_loop.time() + 0.2, self.stop) + self.wait(timeout=0.4) + ++ def test_empty_instantation_is_allowed(self): ++ """ ++ Test that empty instatiation of an AsyncTestCase is allowed. ++ ++ unittest.TestCase docs guarantee this working, and pytest's unittest ++ support relies on it. ++ """ ++ AsyncTestCaseTest() ++ + + class LeakTest(AsyncTestCase): + def tearDown(self): +diff --git a/tornado/testing.py b/tornado/testing.py +index bdbff87bc3..9455411a6d 100644 +--- a/tornado/testing.py ++++ b/tornado/testing.py +@@ -177,7 +177,17 @@ def __init__(self, methodName: str = "runTest") -> None: + # the test will silently be ignored because nothing will consume + # the generator. Replace the test method with a wrapper that will + # make sure it's not an undecorated generator. +- setattr(self, methodName, _TestMethodWrapper(getattr(self, methodName))) ++ try: ++ test_method = getattr(self, methodName) ++ except AttributeError: ++ if methodName != "runTest": ++ # We allow instantiation with no explicit method name ++ # but not an *incorrect* or missing method name. ++ raise ValueError( ++ "no such test method in %s: %s" % (self.__class__, methodName) ++ ) ++ else: ++ setattr(self, methodName, _TestMethodWrapper(test_method)) + + # Not used in this class itself, but used by @gen_test + self._test_generator = None # type: Optional[Union[Generator, Coroutine]] |