from testinfra.utils.ansible_runner import AnsibleRunner testinfra_hosts = AnsibleRunner('.molecule/ansible_inventory').get_hosts('all') def test_mysql_socket(Socket): assert Socket('tcp://0.0.0.0:3306').is_listening def test_mysql_service(Service): assert Service('mysql').is_enabled assert Service('mysql').is_running def test_mysql_alias(File): assert File('/etc/aliases').contains('mysql:') def test_mysql_ssl_group(User): assert 'ssl-cert' in User('mysql').groups def test_mysql_admin_account(Command, Sudo): pass def test_mysql_backup_job(Command, Sudo): with Sudo('nobody'): 'mysql-backup' in Command('crontab -l').stdout def test_mysql_backup_account(Command, Sudo): with Sudo(): 'localhost' in Command( '''mysql --defaults-file=/etc/mysql/debian.cnf --database mysql --execute 'select Host from user where User="backup"' ''').stdout # noqa: E501 def test_mysql_backup_config(File): backup_config = File('/etc/mysql/mysqldump.cnf') assert backup_config.user == 'nobody' assert backup_config.group == 'nogroup' assert backup_config.mode == 0o0400 assert backup_config.contains('user = backup') def test_mysql_backup_directory(File): backup_dir = File('/var/backups/mysql') assert backup_dir.is_directory assert backup_dir.user == 'nobody' assert backup_dir.group == 'nogroup' assert backup_dir.mode == 0o0700 def test_mysql_backup(Command, Sudo): with Sudo('nobody'): mysql_backup = Command('mysql-backup') assert mysql_backup.rc == 0 assert mysql_backup.stderr == ''