Your message dated Wed, 29 May 2024 11:05:33 +0000
with message-id <[email protected]>
and subject line Bug#1072153: fixed in python-tornado 6.4.0-2
has caused the Debian Bug report #1072153,
regarding python3-tornado: unable to instantiate an empty AsyncTestCase
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1072153: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072153
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: python3-tornado
Version: 6.4.0-1
Severity: serious
Tags: patch
User: [email protected]
Usertags: pytest-8
Control: affects -1 src:python-tenacity src:terminado

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Dear maintainer,

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].

Find attached a patch (submitted to upstream [2]) that resolves the issue.


Cheers
Timo

[0] https://docs.python.org/3/library/unittest.html#unittest.TestCase
[1] https://github.com/pytest-dev/pytest/issues/12263
[2] https://github.com/tornadoweb/tornado/pull/3374



-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEmwPruYMA35fCsSO/zIxr3RQD9MoFAmZXBNUACgkQzIxr3RQD
9MpHCxAAhX5aHeyUNaO6Zn1Beex96vffhC8r72FQnu0IUw1Ty9tLW8erwX6sdoxm
EYft79iBL03nQdyucRgr4cglB1jly/0KOuns9VwqBk8nEwjBvCg9TO0CgryH8eip
N8A9Yf0j6A4tW95dbS0Ovs1XfQR4NJ66grDj08vmlTcseBIN9EgrFVEVaOv5QuPm
q8Z78jIqmHDc2YBpHEegxOQD4UtkJZofsQwzjGZhwvz9Zlnuv69PBp4r4XxLQEmm
iErjajRU9mjBMVEosL89xkl1Fb5AQp/IFvTXNsPhbFfKfwcE0hs5EmUO0WhQOJWr
HjiYm8te9QEGhKB1oLad+mg30B9FAMXrdq1qsw/yaZeUaVM9Dpq2LJ2zEGlQKTSX
yauPcxxFeAtVmsq94JdBHT7ag/v8fsJ4MO+hAVZikPh21oT4yA/fixFd4dORJIFy
LFISGojbAjxFnCDnls5JLK0I+QGGnyVQxYu/wEAG6KkA2+1lDFtU2IiTGy1+EOro
FfXde94WF386DlOr0806/4ts4u0qYFcXpwh3SAvJH7Y6ikyt3kgyR+YLkglWeoKM
bEcpsPVn/a2jzyXI5o0TRuIOwLyjxJSbKZYm4QECNQneGez38vmiNjaZZXitlkCR
fTytpm1DIxAN39ah8yt/NG12yKBidQK824595JmOx/gFV5DRQ5w=
=v71Z
-----END PGP SIGNATURE-----
commit c851aa8a949524b35f72c82b45a52353aa3c0558
Author: Ran Benita <[email protected]>
Date:   Sun Apr 28 14:17:54 2024 +0300

    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

diff --git a/tornado/test/testing_test.py b/tornado/test/testing_test.py
index 0429feee..8e2b8db4 100644
--- a/tornado/test/testing_test.py
+++ b/tornado/test/testing_test.py
@@ -61,6 +61,15 @@ class AsyncTestCaseTest(AsyncTestCase):
         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 bdbff87b..9455411a 100644
--- a/tornado/testing.py
+++ b/tornado/testing.py
@@ -177,7 +177,17 @@ class AsyncTestCase(unittest.TestCase):
         # 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]]

--- End Message ---
--- Begin Message ---
Source: python-tornado
Source-Version: 6.4.0-2
Done: Timo Röhling <[email protected]>

We believe that the bug you reported is fixed in the latest version of
python-tornado, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Timo Röhling <[email protected]> (supplier of updated python-tornado package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Wed, 29 May 2024 12:47:59 +0200
Source: python-tornado
Architecture: source
Version: 6.4.0-2
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <[email protected]>
Changed-By: Timo Röhling <[email protected]>
Closes: 1072153
Changes:
 python-tornado (6.4.0-2) unstable; urgency=medium
 .
   * Team upload.
   * Allow to instantiate an empty AsyncTestCase (Closes: #1072153)
   * Bump Standards-Version to 4.7.0
 .
   [ Ondřej Nový ]
   * Remove myself from Uploaders.
Checksums-Sha1:
 d93f5c72fb1f85d03f35001a1a33162971662b4a 2614 python-tornado_6.4.0-2.dsc
 9b0a80e725048a7296b006f2129ef24e494fa51c 11016 
python-tornado_6.4.0-2.debian.tar.xz
Checksums-Sha256:
 92fa8c0bcb63c0869ac2cc7375ca56e81ff0cbc9310c8575617829bf85faefba 2614 
python-tornado_6.4.0-2.dsc
 4ef1ba8ed3a3a2ddc976ae91ce5fa09b1bbfdeaad045e23ff8e1de4f1a3b3b4d 11016 
python-tornado_6.4.0-2.debian.tar.xz
Files:
 bff87c8538f06e843c7bf5f6e342a389 2614 web optional python-tornado_6.4.0-2.dsc
 0880e819b8171ab1da9b36860f6c3b3f 11016 web optional 
python-tornado_6.4.0-2.debian.tar.xz

-----BEGIN PGP SIGNATURE-----

iQJIBAEBCgAyFiEEmwPruYMA35fCsSO/zIxr3RQD9MoFAmZXCNsUHHJvZWhsaW5n
QGRlYmlhbi5vcmcACgkQzIxr3RQD9MraxRAAsOtuiPDgmnR8OvgXyLqOZCeqntAw
b/MugX7VOExkulIhYsX4IeF8xOI8K880Mpb4GIO4jPlyyik58fjXGJL9IISc38Fa
kr0Cr5Nz7c8oJmphKbTLYNZurXbD6c9inBan5NFN4B4Nfk3j5RJU1zT1kpIA/ARX
P+2XC+tcEWSWvaKeOUg+ESJERgSfvQiUaQsAzUpXybjbQBhp4w2wLX2m0VgRk7Z0
zVR++f5elhRGjX99TMEVyr6/EDQNsQixfTRrm20ukIRF94rZMXpr1hs4Ruhb6NKX
pMgO8GOXBiEWyN+ViZSY2PrjmxzJz3x+0qP/Afpn4X+Cco4uR1wrZTVNkIXWsu6l
GHTUfzOEQnmHB+1987RNyVVwRqlqsD9qpKjjNovcKElRZO1/ypxXPKa9o2sB5uJ3
nOjdjrohDz7xwF8GR+Hmru1R3jMfRWQmRSm9T+QpdIIUgUl8jYrAslm71oxRpCK2
07yaPcOn3Mpa/OezuK4MdRPAMfkpfLk7fcCUxCWegwORs2rFclTzYXGJ8t6A4HGT
i85XfFBhtHFbYKL3IqoU2B1Cm0K28DksrH7tzB1bkSUc/+MJsxZw/YUrgy7vfXEz
Cb+nSDEs8Jgy4wsd01c1/Ytydl9bPxQq7yZ6c9Y/JjRZYu7PRCgtOLaNSMqcqDam
ZkgdoNRPUvlGKlI=
=Lapg
-----END PGP SIGNATURE-----

Attachment: pgptOXrbFWorH.pgp
Description: PGP signature


--- End Message ---

Reply via email to