Files
ansible-freeipa/tests
Rafael Guterres Jeffman cf54d139c2 Fixes attempt to create rules with members when category is all.
Current implementation of hbacrule and sudorule allow for a new rule
creation script to be partialy successful when a member is provided and
the respective member category is set to `all` (either users, hosts,
services, commands, and their group counterparts).

Since the creation of the rule is independent of the adittion of members,
the rule is succesfully created, but member addition fails, leaving with
a created rule that has no members on it.

This patch fixes both modules by verifying if user, host, service or
commands (and groups of members) are being added if the corresponding
category is set to `all`, when the state is `present` and the action is
not `member`. If so, it fails before the rule is created.
2020-06-11 11:48:00 -03:00
..
2020-03-24 10:52:53 -03:00
2020-02-26 12:42:31 +01:00
2020-02-26 12:42:31 +01:00
2020-02-26 12:42:31 +01:00
2020-02-26 12:42:31 +01:00
2020-02-26 12:42:31 +01:00
2020-02-28 11:16:23 -03:00
2020-02-26 12:42:31 +01:00
2020-02-26 12:42:31 +01:00
2020-05-19 19:21:53 -03:00
2020-05-19 19:21:53 -03:00

Running the tests

Before starting

In order to run ansible-freeipa tests you will need to have ansible and pytest installed on your machine. We'll call this local machine controller.

You will also need to have a remote host with freeipa server installed and configured. We'll call this remote host ipaserver.

Some other requirements:

  • The controller must be able to connect to ipaserver through ssh using keys.
  • ipaserver must be configured with DNS support. See ipaserver role.
  • IPA admin password must be SomeADMINpassword.
  • Directory Server admin password must be SomeDMpassword.

Running the tests

To run the tests run:

IPA_SERVER_HOST=<ipaserver_host_or_ip> pytest

If you need to run using a different user you can use ANSIBLE_REMOTE_USER environment variable. For example:

ANSIBLE_REMOTE_USER=root IPA_SERVER_HOST=<ipaserver_host_or_ip> pytest

To select which tests to run use the option -k. For example:

IPA_SERVER_HOST=<ipaserver_host_or_ip> pytest -k dnszone

To see the ansible output use the option --capture=sys. For example:

IPA_SERVER_HOST=<ipaserver_host_or_ip> pytest --capture=sys

To see why tests were skipped use -rs. For example:

IPA_SERVER_HOST=<ipaserver_host_or_ip> pytest -rs

For a complete list of options check pytest --help.

Upcoming/desired improvements:

  • A script to pre-config the complete test environment using virsh.
  • A test matrix to run tests against different distros in parallel (probably using tox).
  • Allow to connect to ipaserver using ssh and password.