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]])