99d4f5bab4
* 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
766 B
766 B
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.