0bc35354ce
In order to support legacy plugins, the following two method signatures are allowed for `CallbackBase.v2_playbook_on_start`: def v2_playbook_on_start(self): def v2_playbook_on_start(self, playbook): Previously, the logic to handle this divergence checked to see if the callback plugin being called supported an argument named `playbook` in its `v2_playbook_on_start` method. This was fragile in a few ways: - if a plugin author did not use the literal `playbook` to name their method argument, their plugin would not be called correctly - if a plugin author wrapped their `v2_playbook_on_start` method and by doing so changed the argspec to no longer expose an argument with that literal name, their plugin would not be called correctly In order to continue to support both types of callback for backwards compatibility while making the call more robust for plugin authors, the logic can be reversed in order to have a positive check for the old method signature instead of a positive check for the new one. Signed-off-by: Steve Kuznetsov <skuznets@redhat.com> |
||
---|---|---|
.. | ||
code-smell | ||
integration | ||
samples | ||
sanity/validate-modules | ||
units | ||
utils | ||
README.md |
Ansible Test System
Folders
unit
Unit tests that test small pieces of code not suited for the integration test layer, usually very API based, and should leverage mock interfaces rather than producing side effects.
Playbook engine code is better suited for integration tests.
Requirements: sudo pip install paramiko PyYAML jinja2 httplib2 passlib nose mock
integration
Integration test layer, constructed using playbooks.
Some tests may require cloud credentials, others will not, and destructive tests are separated from non-destructive so a subset can be run on development machines.
Tests for network modules can be found in https://github.com/ansible/test-network-modules/
learn more
hop into a subdirectory and see the associated README.md for more info.