2023-02-16 09:49:03 |
Olivier Gayot |
bug |
|
|
added bug |
2023-02-16 09:49:32 |
Olivier Gayot |
description |
I have upgraded my desktop to lunar recently
The unit tests look all green, but all tests that use coroutines + parameterized don't actually run the coroutine. The presence of warnings makes it more or less obvious.
excerpt
-------
subiquity/server/controllers/tests/test_filesystem.py: 12 warnings
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestGuidedV2.test_blank_disk' was never awaited
if self._callMaybeAsync(method) is not None:
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_00
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_00>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_01
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_01>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_02
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_02>>)
return self.run(*args, **kwds)
[...]
simple test case
----------------
import unittest
from parameterized import parameterized
class TestParameterizedCoroutine(unittest.IsolatedAsyncioTestCase):
def test_function_no_parameterized(self):
self.fail("This test ran properly")
async def test_coroutine_no_parameterized(self):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
def test_function_parameterized(self, x, y):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
async def test_coroutine_parameterized(self, x, y):
self.fail("This test ran properly")
In Python3.10 and lower, all 4 tests "fail" with "This test ran properly".
In Python3.11, the last test "succeeds" and produces the following warnings:
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestParameterizedCoroutine.test_coroutine_parameterized' was never awaited
if self._callMaybeAsync(method) is not None:
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestParameterizedCoroutine.test_coroutine_parameterized of <test_parameterized_coroutines.TestParameterizedCoroutine testMethod=test_coroutine_parameterized_0>>)
return self.run(*args, **kwds) |
I have upgraded my desktop to lunar recently
The subiquity unit tests look all green, but all tests that use coroutines + parameterized don't actually run the coroutine. The presence of warnings makes it more or less obvious.
excerpt
-------
subiquity/server/controllers/tests/test_filesystem.py: 12 warnings
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestGuidedV2.test_blank_disk' was never awaited
if self._callMaybeAsync(method) is not None:
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_00
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_00>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_01
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_01>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_02
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_02>>)
return self.run(*args, **kwds)
[...]
simple test case
----------------
import unittest
from parameterized import parameterized
class TestParameterizedCoroutine(unittest.IsolatedAsyncioTestCase):
def test_function_no_parameterized(self):
self.fail("This test ran properly")
async def test_coroutine_no_parameterized(self):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
def test_function_parameterized(self, x, y):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
async def test_coroutine_parameterized(self, x, y):
self.fail("This test ran properly")
In Python3.10 and lower, all 4 tests "fail" with "This test ran properly".
In Python3.11, the last test "succeeds" and produces the following warnings:
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestParameterizedCoroutine.test_coroutine_parameterized' was never awaited
if self._callMaybeAsync(method) is not None:
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestParameterizedCoroutine.test_coroutine_parameterized of <test_parameterized_coroutines.TestParameterizedCoroutine testMethod=test_coroutine_parameterized_0>>)
return self.run(*args, **kwds) |
|
2023-02-16 09:50:31 |
Olivier Gayot |
bug task added |
|
python3.11 (Ubuntu) |
|
2023-02-16 09:50:53 |
Olivier Gayot |
bug task added |
|
python-parameterized (Ubuntu) |
|
2023-02-16 09:51:45 |
Olivier Gayot |
description |
I have upgraded my desktop to lunar recently
The subiquity unit tests look all green, but all tests that use coroutines + parameterized don't actually run the coroutine. The presence of warnings makes it more or less obvious.
excerpt
-------
subiquity/server/controllers/tests/test_filesystem.py: 12 warnings
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestGuidedV2.test_blank_disk' was never awaited
if self._callMaybeAsync(method) is not None:
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_00
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_00>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_01
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_01>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_02
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_02>>)
return self.run(*args, **kwds)
[...]
simple test case
----------------
import unittest
from parameterized import parameterized
class TestParameterizedCoroutine(unittest.IsolatedAsyncioTestCase):
def test_function_no_parameterized(self):
self.fail("This test ran properly")
async def test_coroutine_no_parameterized(self):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
def test_function_parameterized(self, x, y):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
async def test_coroutine_parameterized(self, x, y):
self.fail("This test ran properly")
In Python3.10 and lower, all 4 tests "fail" with "This test ran properly".
In Python3.11, the last test "succeeds" and produces the following warnings:
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestParameterizedCoroutine.test_coroutine_parameterized' was never awaited
if self._callMaybeAsync(method) is not None:
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestParameterizedCoroutine.test_coroutine_parameterized of <test_parameterized_coroutines.TestParameterizedCoroutine testMethod=test_coroutine_parameterized_0>>)
return self.run(*args, **kwds) |
I have upgraded my desktop to lunar recently, which pulls Python 3.11.
The subiquity unit tests look all green, but all tests that use coroutines + parameterized don't actually run the coroutine. The presence of warnings makes it more or less obvious.
excerpt
-------
subiquity/server/controllers/tests/test_filesystem.py: 12 warnings
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestGuidedV2.test_blank_disk' was never awaited
if self._callMaybeAsync(method) is not None:
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_00
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_00>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_01
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_01>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_02
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_02>>)
return self.run(*args, **kwds)
[...]
simple test case
----------------
import unittest
from parameterized import parameterized
class TestParameterizedCoroutine(unittest.IsolatedAsyncioTestCase):
def test_function_no_parameterized(self):
self.fail("This test ran properly")
async def test_coroutine_no_parameterized(self):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
def test_function_parameterized(self, x, y):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
async def test_coroutine_parameterized(self, x, y):
self.fail("This test ran properly")
In Python3.10 and lower, all 4 tests "fail" with "This test ran properly".
In Python3.11, the last test "succeeds" and produces the following warnings:
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestParameterizedCoroutine.test_coroutine_parameterized' was never awaited
if self._callMaybeAsync(method) is not None:
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestParameterizedCoroutine.test_coroutine_parameterized of <test_parameterized_coroutines.TestParameterizedCoroutine testMethod=test_coroutine_parameterized_0>>)
return self.run(*args, **kwds) |
|
2023-02-16 09:52:08 |
Olivier Gayot |
description |
I have upgraded my desktop to lunar recently, which pulls Python 3.11.
The subiquity unit tests look all green, but all tests that use coroutines + parameterized don't actually run the coroutine. The presence of warnings makes it more or less obvious.
excerpt
-------
subiquity/server/controllers/tests/test_filesystem.py: 12 warnings
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestGuidedV2.test_blank_disk' was never awaited
if self._callMaybeAsync(method) is not None:
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_00
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_00>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_01
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_01>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_02
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_02>>)
return self.run(*args, **kwds)
[...]
simple test case
----------------
import unittest
from parameterized import parameterized
class TestParameterizedCoroutine(unittest.IsolatedAsyncioTestCase):
def test_function_no_parameterized(self):
self.fail("This test ran properly")
async def test_coroutine_no_parameterized(self):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
def test_function_parameterized(self, x, y):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
async def test_coroutine_parameterized(self, x, y):
self.fail("This test ran properly")
In Python3.10 and lower, all 4 tests "fail" with "This test ran properly".
In Python3.11, the last test "succeeds" and produces the following warnings:
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestParameterizedCoroutine.test_coroutine_parameterized' was never awaited
if self._callMaybeAsync(method) is not None:
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestParameterizedCoroutine.test_coroutine_parameterized of <test_parameterized_coroutines.TestParameterizedCoroutine testMethod=test_coroutine_parameterized_0>>)
return self.run(*args, **kwds) |
I have upgraded my desktop to lunar recently, which pulls Python 3.11.
The subiquity unit tests look all green, but all tests that use coroutines + parameterized don't actually run the coroutine. The presence of warnings makes it more or less obvious.
excerpt
-------
subiquity/server/controllers/tests/test_filesystem.py: 12 warnings
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestGuidedV2.test_blank_disk' was never awaited
if self._callMaybeAsync(method) is not None:
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_00
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_00>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_01
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_01>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_02
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_02>>)
return self.run(*args, **kwds)
[...]
simple reproducer
-----------------
import unittest
from parameterized import parameterized
class TestParameterizedCoroutine(unittest.IsolatedAsyncioTestCase):
def test_function_no_parameterized(self):
self.fail("This test ran properly")
async def test_coroutine_no_parameterized(self):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
def test_function_parameterized(self, x, y):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
async def test_coroutine_parameterized(self, x, y):
self.fail("This test ran properly")
In Python3.10 and lower, all 4 tests "fail" with "This test ran properly".
In Python3.11, the last test "succeeds" and produces the following warnings:
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestParameterizedCoroutine.test_coroutine_parameterized' was never awaited
if self._callMaybeAsync(method) is not None:
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestParameterizedCoroutine.test_coroutine_parameterized of <test_parameterized_coroutines.TestParameterizedCoroutine testMethod=test_coroutine_parameterized_0>>)
return self.run(*args, **kwds) |
|
2023-02-16 09:56:18 |
Olivier Gayot |
description |
I have upgraded my desktop to lunar recently, which pulls Python 3.11.
The subiquity unit tests look all green, but all tests that use coroutines + parameterized don't actually run the coroutine. The presence of warnings makes it more or less obvious.
excerpt
-------
subiquity/server/controllers/tests/test_filesystem.py: 12 warnings
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestGuidedV2.test_blank_disk' was never awaited
if self._callMaybeAsync(method) is not None:
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_00
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_00>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_01
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_01>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_02
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_02>>)
return self.run(*args, **kwds)
[...]
simple reproducer
-----------------
import unittest
from parameterized import parameterized
class TestParameterizedCoroutine(unittest.IsolatedAsyncioTestCase):
def test_function_no_parameterized(self):
self.fail("This test ran properly")
async def test_coroutine_no_parameterized(self):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
def test_function_parameterized(self, x, y):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
async def test_coroutine_parameterized(self, x, y):
self.fail("This test ran properly")
In Python3.10 and lower, all 4 tests "fail" with "This test ran properly".
In Python3.11, the last test "succeeds" and produces the following warnings:
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestParameterizedCoroutine.test_coroutine_parameterized' was never awaited
if self._callMaybeAsync(method) is not None:
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestParameterizedCoroutine.test_coroutine_parameterized of <test_parameterized_coroutines.TestParameterizedCoroutine testMethod=test_coroutine_parameterized_0>>)
return self.run(*args, **kwds) |
I have upgraded my desktop to lunar recently, which pulls Python 3.11.
The subiquity unit tests look all green, but all tests that use coroutines + parameterized don't actually run the coroutine. The presence of warnings makes it more or less obvious.
excerpt
-------
subiquity/server/controllers/tests/test_filesystem.py: 12 warnings
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestGuidedV2.test_blank_disk' was never awaited
if self._callMaybeAsync(method) is not None:
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_00
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_00>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_01
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_01>>)
return self.run(*args, **kwds)
subiquity/server/controllers/tests/test_filesystem.py::TestGuidedV2::test_blank_disk_02
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestGuidedV2.test_blank_disk of <subiquity.server.controllers.tests.test_filesystem.TestGuidedV2 testMethod=test_blank_disk_02>>)
return self.run(*args, **kwds)
[...]
simple reproducer
-----------------
import unittest
from parameterized import parameterized
class TestParameterizedCoroutine(unittest.IsolatedAsyncioTestCase):
def test_function_no_parameterized(self):
self.fail("This test ran properly")
async def test_coroutine_no_parameterized(self):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
def test_function_parameterized(self, x, y):
self.fail("This test ran properly")
@parameterized.expand([(1, 2)])
async def test_coroutine_parameterized(self, x, y):
self.fail("This test ran properly")
In Python3.10 and lower, all 4 tests "fail" with "This test ran properly".
In Python3.11, the last test "succeeds" and produces the following warnings:
/usr/lib/python3.11/unittest/async_case.py:90: RuntimeWarning: coroutine 'TestParameterizedCoroutine.test_coroutine_parameterized' was never awaited
if self._callMaybeAsync(method) is not None:
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
/usr/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestParameterizedCoroutine.test_coroutine_parameterized of <test_parameterized_coroutines.TestParameterizedCoroutine testMethod=test_coroutine_parameterized_0>>)
return self.run(*args, **kwds)
Tested with python3 -m unittest and python3 -m nose with the same result. |
|
2023-02-16 17:16:05 |
Dan Bungert |
bug watch added |
|
https://github.com/python/cpython/issues/101486 |
|
2023-02-16 17:16:05 |
Dan Bungert |
bug watch added |
|
https://github.com/wolever/parameterized/issues/137 |
|
2023-02-17 02:17:50 |
Dan Bungert |
subiquity: assignee |
|
Dan Bungert (dbungert) |
|
2023-02-17 02:17:52 |
Dan Bungert |
subiquity: status |
New |
In Progress |
|
2023-02-20 15:55:29 |
Olivier Gayot |
python3.11 (Ubuntu): status |
New |
Invalid |
|
2023-02-20 15:55:32 |
Olivier Gayot |
python-parameterized (Ubuntu): status |
New |
Invalid |
|
2023-02-20 15:55:36 |
Olivier Gayot |
subiquity: status |
In Progress |
Fix Committed |
|