Files
@ 064760bdc9d5
Branch filter:
Location: majic-ansible-roles/roles/database_server/tests/test_default.py
064760bdc9d5
3.0 KiB
text/x-python
MAR-26: Implemented tests and fixes ldap_server role:
- Use static network configuration in order to make it easier to test
connectivity from dedicated client.
- Added client machine for testing firewall.
- Added missing LDAP client configuration on instance used for testing of
mandatory options.
- Fixed name of server for backup testing purposes.
- Expanded a bit the cipher configuration for LDAP server for testing optional
parameters.
- Fixed wrongly populated Debian selections setting for LDAP organisation.
- Use templates for deploying LDAP TLS keys and certificates in order to avoid
Ansible munching the TAB characters.
- Implemented tests covering fully functionality of the role.
- Use static network configuration in order to make it easier to test
connectivity from dedicated client.
- Added client machine for testing firewall.
- Added missing LDAP client configuration on instance used for testing of
mandatory options.
- Fixed name of server for backup testing purposes.
- Expanded a bit the cipher configuration for LDAP server for testing optional
parameters.
- Fixed wrongly populated Debian selections setting for LDAP organisation.
- Use templates for deploying LDAP TLS keys and certificates in order to avoid
Ansible munching the TAB characters.
- Implemented tests covering fully functionality of the role.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | import testinfra.utils.ansible_runner
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
'.molecule/ansible_inventory').get_hosts('all')
def test_installed_packages(Package):
"""
Tests if the correct packages have been installed.
"""
assert Package('mariadb-client').is_installed
assert Package('mariadb-server').is_installed
assert Package('python-mysqldb').is_installed
def test_service(Service):
"""
Tests if the database server service is enabled on boot and running.
"""
service = Service('mysql')
assert service.is_enabled
assert service.is_running
def test_root_password(Command):
"""
Tests if the root password has been set correctly.
"""
login = Command("mysql -uroot -proot_password -BNe 'show databases'")
assert login.rc == 0
assert "information_schema" in login.stdout
assert "mysql" in login.stdout
assert "performance_schema" in login.stdout
def test_root_my_cnf(File, Sudo):
"""
Tests if the root my.cnf configuration has been set-up with correct
user/password and permissions.
"""
with Sudo():
my_cnf = File('/root/.my.cnf')
assert my_cnf.is_file
assert my_cnf.user == 'root'
assert my_cnf.group == 'root'
assert my_cnf.mode == 0o400
assert "user=root" in my_cnf.content
assert "password=root_password" in my_cnf.content
def test_root_my_cnf_login(Command, Sudo):
"""
Tets if the database server root login works using just the my.cnf
configuration file.
"""
with Sudo():
login = Command("mysql -BNe 'show databases'")
assert "information_schema" in login.stdout
assert "mysql" in login.stdout
assert "performance_schema" in login.stdout
def test_utf8_configuration_file(File):
"""
Tests if UTF-8 database server configuration file has been deployed
correctly.
"""
config = File('/etc/mysql/conf.d/utf8.cnf')
assert config.is_file
assert config.user == 'root'
assert config.group == 'root'
assert config.mode == 0o644
def test_utf8_configuration(Command):
"""
Tests if UTF-8 configuration has been applied correctly to server.
"""
assert Command("mysql -uroot -proot_password -BNe 'drop database if exists test'").rc == 0
assert Command("mysql -uroot -proot_password -BNe 'create database test'").rc == 0
check_server = Command("mysql -uroot -proot_password test -BNe 'select @@character_set_server; select @@collation_server'")
assert check_server.rc == 0
assert check_server.stdout == "utf8\nutf8_general_ci"
check_database = Command("mysql -uroot -proot_password test -BNe 'select @@character_set_database; select @@collation_database'")
assert check_database.rc == 0
assert check_database.stdout == "utf8\nutf8_general_ci"
check_database = Command("mysql -uroot -proot_password -BNe 'select @@character_set_connection; select @@collation_connection'")
assert check_database.rc == 0
assert check_database.stdout == "utf8\nutf8_general_ci"
|