mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 21:00:22 -07:00
Remove uses of assert in production code (#32079)
* Remove uses of assert in production code * Fix assertion * Add code smell test for assertions, currently limited to lib/ansible * Fix assertion * Add docs for no-assert * Remove new assert from enos * Fix assert in module_utils.connection
This commit is contained in:
parent
464ded80f5
commit
99d4f5bab4
38 changed files with 195 additions and 89 deletions
16
docs/docsite/rst/dev_guide/testing/sanity/no-assert.rst
Normal file
16
docs/docsite/rst/dev_guide/testing/sanity/no-assert.rst
Normal file
|
@ -0,0 +1,16 @@
|
|||
Sanity Tests » no-assert
|
||||
========================
|
||||
|
||||
Do not use ``assert`` in production Ansible python code. When running Python
|
||||
with optimizations, Python will remove ``assert`` statements, potentially
|
||||
allowing for unexpected behavior throughout the Ansible code base.
|
||||
|
||||
Instead of using ``assert`` you should utilize simple ``if`` statements,
|
||||
that result in raising an exception. There is a new exception called
|
||||
``AnsibleAssertionError`` that inherits from ``AnsibleError`` and
|
||||
``AssertionError``. When possible, utilize a more specific exception
|
||||
than ``AnsibleAssertionError``.
|
||||
|
||||
Modules will not have access to ``AnsibleAssertionError`` and should instead
|
||||
raise ``AssertionError``, a more specific exception, or just use
|
||||
``module.fail_json`` at the failure point.
|
Loading…
Add table
Add a link
Reference in a new issue