Files
@ ff510f233909
Branch filter:
Location: majic-ansible-roles/roles/database_server/molecule/default/tests/test_default.py - annotation
ff510f233909
3.1 KiB
text/x-python
MAR-132: Added support for Debian 9 (Stretch) to php_website role:
- Implemented the necessary changes related to differences between PHP
versions and related paths (PHP 5 vs PHP 7).
- Set the shell for application system account explicitly (workaround
for Debian bug 865762 in Stretch).
- Updated Molecule tests to cover Debian 9.
- Updated Molecule test preparation playbook to account for a number
of differences between Jessie and Stretch (mainly related to mailing
functionality).
- Use more specific host groups in tests.
- Renamed a couple of variables in test for sending out mails to make
it clearer what is being looked up as part of regex matching.
- Updated Molecule tests where certain paths depend on what Debian
release they are ran against.
- Split-up Jessie-specific tests into separate file.
- Implemented the necessary changes related to differences between PHP
versions and related paths (PHP 5 vs PHP 7).
- Set the shell for application system account explicitly (workaround
for Debian bug 865762 in Stretch).
- Updated Molecule tests to cover Debian 9.
- Updated Molecule test preparation playbook to account for a number
of differences between Jessie and Stretch (mainly related to mailing
functionality).
- Use more specific host groups in tests.
- Renamed a couple of variables in test for sending out mails to make
it clearer what is being looked up as part of regex matching.
- Updated Molecule tests where certain paths depend on what Debian
release they are ran against.
- Split-up Jessie-specific tests into separate file.
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 110 111 112 | 02142564ac8f 02142564ac8f 18f93a9a8b05 18f93a9a8b05 02142564ac8f 18f93a9a8b05 02142564ac8f 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 fc2c451981c8 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 fc2c451981c8 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 fc2c451981c8 18f93a9a8b05 18f93a9a8b05 18f93a9a8b05 | import os
import testinfra.utils.ansible_runner
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['parameters-mandatory'])
def test_installed_packages(host):
"""
Tests if the correct packages have been installed.
"""
assert host.package('mariadb-client').is_installed
assert host.package('mariadb-server').is_installed
assert host.package('python-mysqldb').is_installed
def test_service(host):
"""
Tests if the database server service is enabled on boot and running.
"""
service = host.service('mysql')
assert service.is_enabled
assert service.is_running
def test_root_password(host):
"""
Tests if the root password has been set correctly.
"""
login = host.run("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(host):
"""
Tests if the root my.cnf configuration has been set-up with correct
user/password and permissions.
"""
with host.sudo():
my_cnf = host.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(host):
"""
Tets if the database server root login works using just the my.cnf
configuration file.
"""
with host.sudo():
login = host.run("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(host):
"""
Tests if UTF-8 database server configuration file has been deployed
correctly.
"""
config = host.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(host):
"""
Tests if UTF-8 configuration has been applied correctly to server.
"""
assert host.run("mysql -uroot -proot_password -BNe 'drop database if exists test'").rc == 0
assert host.run("mysql -uroot -proot_password -BNe 'create database test'").rc == 0
check_server = host.run("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 = host.run("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 = host.run("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"
|