Default `init` plugin was not properly raising when called with an invalid optimization level (#12170)

* Raise instead of return.

---

Co-authored-by: Evgenii Zheltonozhskii <zheltonozhskiy@gmail.com>

* link

* reno

---------

Co-authored-by: Evgenii Zheltonozhskii <zheltonozhskiy@gmail.com>
This commit is contained in:
Luciano Bello 2024-04-12 23:11:27 +02:00 committed by GitHub
parent b30c94cecd
commit e0be97c10c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 14 additions and 1 deletions

View File

@ -158,7 +158,7 @@ class DefaultInitPassManager(PassManagerStagePlugin):
init.append(CommutativeCancellation())
else:
return TranspilerError(f"Invalid optimization level {optimization_level}")
raise TranspilerError(f"Invalid optimization level {optimization_level}")
return init

View File

@ -0,0 +1,4 @@
---
fixes:
- |
The default ``init`` plugin was not properly raising a :class:`.TranspilerError` when called with an invalid optimization level.

View File

@ -86,6 +86,15 @@ class TestStagePassManagerPlugin(QiskitTestCase):
)
self.assertIsInstance(pm, PassManager)
def test_init_invalid_optlevel(self):
"""Test default init stage with invalid optimization level.
See: https://github.com/Qiskit/qiskit/pull/12170"""
plugin_manager = PassManagerStagePluginManager()
with self.assertRaises(TranspilerError):
plugin_manager.get_passmanager_stage(
"init", "default", PassManagerConfig(), optimization_level=4
)
@ddt.ddt
class TestBuiltinPlugins(QiskitTestCase):