nixos/automysqlackup: Port test to python

This commit is contained in:
Jacek Galowicz 2019-10-27 14:20:06 +01:00 committed by Jacek Galowicz
parent 986a1eb32b
commit 48508da01e

View File

@ -1,4 +1,4 @@
import ./make-test.nix ({ pkgs, lib, ... }: import ./make-test-python.nix ({ pkgs, lib, ... }:
{ {
name = "automysqlbackup"; name = "automysqlbackup";
@ -15,20 +15,24 @@ import ./make-test.nix ({ pkgs, lib, ... }:
}; };
testScript = '' testScript = ''
startAll; start_all()
# Need to have mysql started so that it can be populated with data. # Need to have mysql started so that it can be populated with data.
$machine->waitForUnit("mysql.service"); machine.wait_for_unit("mysql.service")
# Wait for testdb to be fully populated (5 rows). with subtest("Wait for testdb to be fully populated (5 rows)."):
$machine->waitUntilSucceeds("mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"); machine.wait_until_succeeds(
"mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
)
# Do a backup and wait for it to start with subtest("Do a backup and wait for it to start"):
$machine->startJob("automysqlbackup.service"); machine.start_job("automysqlbackup.service")
$machine->waitForJob("automysqlbackup.service"); machine.wait_for_job("automysqlbackup.service")
# wait for backup file and check that data appears in backup with subtest("wait for backup file and check that data appears in backup"):
$machine->waitForFile("/var/backup/mysql/daily/testdb"); machine.wait_for_file("/var/backup/mysql/daily/testdb")
$machine->succeed("${pkgs.gzip}/bin/zcat /var/backup/mysql/daily/testdb/daily_testdb_*.sql.gz | grep hello"); machine.succeed(
"${pkgs.gzip}/bin/zcat /var/backup/mysql/daily/testdb/daily_testdb_*.sql.gz | grep hello"
)
''; '';
}) })