should_run_backup_or_restore is doing
# For non point in time restores we want to do the backup and restore after the same test. else: return (self.tests_run < self.n, self.tests_run < self.n)
It should probably be
(self.tests_run == self.n, self.tests_run == self.n) ?
If n == 10 and tests_run == 1, it should be (false, false).
Also if n == 1 and tests_run == 1, it should be (true, true).