Testing modules
Testing is often undervalued due to lack of understanding of its purpose and the benefits it can bring to the business. Testing modules is as important as testing any other part of the Ansible playbook because a small change in a module can break your entire playbook. We will take an example of the Python module that we wrote in the first section of this chapter and write an integration test using Python's nose test framework. Unit tests are also encouraged, but for our scenario where we check if a user exists remotely, an integration test makes more sense.
Note
nose
is a Python test framework. For more information, visit https://nose.readthedocs.org/en/latest/.
To test
the module, we convert our previous module into a Python class so that we can directly import the class in our test, and run only the main logic of the module. The following code shows the library/check_user_py3.py
restructured module, which will check whether a user exists on a remote host:
#!/usr/bin/env...