Files
@ 7c07f17e46ba
Branch filter:
Location: majic-ansible-roles/roles/database/tests/test_backup.py - annotation
7c07f17e46ba
1.9 KiB
text/x-python
MAR-26: Implemented scaffolding for testing the ldap_server role:
- Fixed role documentation and example for the ldap_server ldap_entries
parameter.
- Fixed missing leading zero when setting mode for deployed files.
- Marked certain tasks for skipping Ansible linting on.
- Fixed invocation of local LDAP commands to use unix socket out of the
box (don't depend on LDAP client configuration).
- Default to state 'present' for ldap_entry (makes things a bit more
readable/clear).
- Added test data for backup and TLS.
- Added dummy default test file.
- Fixed role documentation and example for the ldap_server ldap_entries
parameter.
- Fixed missing leading zero when setting mode for deployed files.
- Marked certain tasks for skipping Ansible linting on.
- Fixed invocation of local LDAP commands to use unix socket out of the
box (don't depend on LDAP client configuration).
- Default to state 'present' for ldap_entry (makes things a bit more
readable/clear).
- Added test data for backup and TLS.
- Added dummy default test file.
862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b 862402d2c45b | import testinfra.utils.ansible_runner
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
'.molecule/ansible_inventory').get_hosts('backup')
def test_backup_directories(File, Sudo):
"""
Tests if backup directories have been set-up correctly.
"""
with Sudo():
directories = ["/srv/backup", "/srv/backup/mariadb"]
for path in directories:
directory = File(path)
assert directory.is_directory
assert directory.user == 'root'
assert directory.group == 'root'
assert directory.mode == 0o700
def test_backup_script_file(File, Sudo):
"""
Tests if backup script file for dumping database has been set-up correctly.
"""
with Sudo():
script = File('/etc/duply/main/pre.d/dump_testdb.sh')
assert script.is_file
assert script.user == 'root'
assert script.group == 'root'
assert script.mode == 0o700
assert "/usr/bin/mysqldump \"testdb\" > \"/srv/backup/mariadb/testdb.sql\"" in script.content
def test_backup_run(Command, File, Sudo):
"""
Tests if backup runs correctly, and if restore will included the backed-up
database.
"""
with Sudo():
# Remove restore directory in order to make sure restore has worked
# correctly.
Command("rm -rf /root/restore")
backup_run = Command('duply main backup')
assert backup_run.rc == 0
database_dump = File('/srv/backup/mariadb/testdb.sql')
assert database_dump.is_file
assert 'Database: testdb' in database_dump.content
restore_run = Command('duply main restore /root/restore')
assert restore_run.rc == 0
restored_database_dump = File('/root/restore/srv/backup/mariadb/testdb.sql')
assert restored_database_dump.is_file
assert restored_database_dump.content == database_dump.content
|