コード例 #1
0
class PostgresqlBackupTests(trove_testtools.TestCase):
    # TODO(atomic77) More tests for error scenarios, edge cases and timelines

    def setUp(self):
        super(PostgresqlBackupTests, self).setUp()
        self.bkutil = PgBaseBackupUtil()

        self.b1 = ['000000010000000000000003',
                   '000000010000000000000004',
                   '000000010000000000000005',
                   '000000010000000000000006',
                   '000000010000000000000006.00000168.backup']

        self.b2 = ['000000010000000000000007',
                   '000000010000000000000008',
                   '000000010000000000000009',
                   '000000010000000000000010',
                   '000000010000000000000009.0008A168.backup']

    def tearDown(self):
        super(PostgresqlBackupTests, self).tearDown()

    def test_check_most_recent_backup(self):

        with patch.object(os, 'listdir', return_value=self.b1):
            mrb = self.bkutil.most_recent_backup_file()
            self.assertEqual(mrb, self.b1[4])
            mrbfile = self.bkutil.most_recent_backup_wal()
            self.assertEqual(mrbfile, self.b1[3])

        with patch.object(os, 'listdir', return_value=self.b1 + self.b2):
            mrb = self.bkutil.most_recent_backup_file()
            self.assertEqual(mrb, self.b2[4])
            mrbfile = self.bkutil.most_recent_backup_wal()
            self.assertEqual(mrbfile, self.b2[2])

    def test_check_most_recent_wal_list(self):

        with patch.object(os, 'listdir', return_value=self.b1):
            logs = self.bkutil.log_files_since_last_backup()
            self.assertEqual(logs, [self.b1[3]])

        with patch.object(os, 'listdir', return_value=self.b2):
            logs = self.bkutil.log_files_since_last_backup()
            self.assertEqual(logs, [self.b2[2], self.b2[3]])

        with patch.object(os, 'listdir', return_value=self.b1 + self.b2):
            logs = self.bkutil.log_files_since_last_backup()
            self.assertEqual(logs, [self.b2[2], self.b2[3]])