mirror of https://github.com/Qiskit/qiskit.git
Suppress nonsense `DeprecationWarning` caused by `unittest` (#12676)
* Suppress nonsense `DeprecationWarning` caused by `unittest` `unittest.TestCase.assertWarns` in context-manager form has an awkward habit of querying the `__warningregistry__` attribute on every module in existence. This interacts poorly with a Numpy 2 deprecation warning trigger for code that's attempting to import functions from modules that became private in Numpy 2, if a warning has previously been triggered out of `numpy.linalg._linalg`. This simply suppresses that particular warning from the test suite. * Refine filter * Pin Rustworkx to avoid buggy graphviz drawing * Update test/utils/base.py Co-authored-by: Elena Peña Tapia <57907331+ElePT@users.noreply.github.com> --------- Co-authored-by: Elena Peña Tapia <57907331+ElePT@users.noreply.github.com>
This commit is contained in:
parent
ea5a54b9da
commit
3adcd5d3df
|
@ -7,6 +7,10 @@ scipy<1.11; python_version<'3.12'
|
|||
# See https://github.com/Qiskit/qiskit/issues/12655 for current details.
|
||||
scipy==1.13.1; python_version=='3.12'
|
||||
|
||||
# Rustworkx 0.15.0 contains a bug that breaks graphviz-related tests.
|
||||
# See https://github.com/Qiskit/rustworkx/pull/1229 for the fix.
|
||||
rustworkx==0.14.2
|
||||
|
||||
# z3-solver from 4.12.3 onwards upped the minimum macOS API version for its
|
||||
# wheels to 11.7. The Azure VM images contain pre-built CPythons, of which at
|
||||
# least CPython 3.8 was compiled for an older macOS, so does not match a
|
||||
|
|
|
@ -204,6 +204,20 @@ class QiskitTestCase(BaseQiskitTestCase):
|
|||
warnings.filterwarnings("error", category=DeprecationWarning)
|
||||
warnings.filterwarnings("error", category=QiskitWarning)
|
||||
|
||||
# Numpy 2 made a few new modules private, and have warnings that trigger if you try to
|
||||
# access attributes that _would_ have existed. Unfortunately, Python's `warnings` module
|
||||
# adds a field called `__warningregistry__` to any module that triggers a warning, and
|
||||
# `unittest.TestCase.assertWarns` then queries said fields on all existing modules. On
|
||||
# macOS ARM, we see some (we think harmless) warnings come out of `numpy.linalg._linalg` (a
|
||||
# now-private module) during transpilation, which means that subsequent `assertWarns` calls
|
||||
# can spuriously trick Numpy into sending out a nonsense `DeprecationWarning`.
|
||||
# Tracking issue: https://github.com/Qiskit/qiskit/issues/12679
|
||||
warnings.filterwarnings(
|
||||
"ignore",
|
||||
category=DeprecationWarning,
|
||||
message=r".*numpy\.(\w+\.)*__warningregistry__",
|
||||
)
|
||||
|
||||
# We only use pandas transitively through seaborn, so it's their responsibility to mark if
|
||||
# their use of pandas would be a problem.
|
||||
warnings.filterwarnings(
|
||||
|
|
Loading…
Reference in New Issue