Skip to content

Commit 295c5c8

Browse files
committed
[Issue #131] tests coverage
1 parent 0a1a2b6 commit 295c5c8

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed

tests/delete.py

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -692,3 +692,106 @@ def test_delete_multiple_descendants(self):
692692

693693
# Clean after yourself
694694
self.del_test_dir(module_name, fname)
695+
696+
# @unittest.skip("skip")
697+
def test_delete_multiple_descendants_dry_run(self):
698+
"""
699+
PAGEa3
700+
PAGEa2 /
701+
\ /
702+
PAGEa1 (delete target)
703+
|
704+
FULLa
705+
"""
706+
fname = self.id().split('.')[3]
707+
node = self.make_simple_node(
708+
base_dir=os.path.join(module_name, fname, 'node'),
709+
initdb_params=['--data-checksums'])
710+
711+
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
712+
self.init_pb(backup_dir)
713+
self.add_instance(backup_dir, 'node', node)
714+
self.set_archiving(backup_dir, 'node', node)
715+
node.slow_start()
716+
717+
# Take FULL BACKUP
718+
node.pgbench_init(scale=1)
719+
backup_id_a = self.backup_node(backup_dir, 'node', node)
720+
721+
pgbench = node.pgbench(options=['-T', '10', '-c', '2'])
722+
pgbench.wait()
723+
page_id_a1 = self.backup_node(
724+
backup_dir, 'node', node, backup_type='page')
725+
726+
pgbench = node.pgbench(options=['-T', '10', '-c', '2'])
727+
pgbench.wait()
728+
page_id_a2 = self.backup_node(
729+
backup_dir, 'node', node, backup_type='page')
730+
731+
732+
# Change PAGEa2 to ERROR
733+
self.change_backup_status(backup_dir, 'node', page_id_a2, 'ERROR')
734+
735+
pgbench = node.pgbench(options=['-T', '10', '-c', '2'])
736+
pgbench.wait()
737+
page_id_a3 = self.backup_node(
738+
backup_dir, 'node', node, backup_type='page')
739+
740+
# Change PAGEa2 to ERROR
741+
self.change_backup_status(backup_dir, 'node', page_id_a2, 'OK')
742+
743+
# Delete PAGEa1
744+
output = self.delete_pb(
745+
backup_dir, 'node', page_id_a1,
746+
options=['--dry-run', '--log-level-console=LOG', '--delete-wal'])
747+
748+
print(output)
749+
self.assertIn(
750+
'LOG: Backup {0} can be deleted'.format(page_id_a3),
751+
output)
752+
self.assertIn(
753+
'LOG: Backup {0} can be deleted'.format(page_id_a2),
754+
output)
755+
self.assertIn(
756+
'LOG: Backup {0} can be deleted'.format(page_id_a1),
757+
output)
758+
759+
self.assertIn(
760+
'INFO: Resident data size to free by '
761+
'delete of backup {0} :'.format(page_id_a1),
762+
output)
763+
764+
self.assertIn(
765+
'On timeline 1 WAL segments between 0000000000000001 '
766+
'and 0000000000000002 can be removed',
767+
output)
768+
769+
self.assertEqual(len(self.show_pb(backup_dir, 'node')), 4)
770+
771+
output = self.delete_pb(
772+
backup_dir, 'node', page_id_a1,
773+
options=['--log-level-console=LOG', '--delete-wal'])
774+
775+
self.assertIn(
776+
'LOG: Backup {0} will be deleted'.format(page_id_a3),
777+
output)
778+
self.assertIn(
779+
'LOG: Backup {0} will be deleted'.format(page_id_a2),
780+
output)
781+
self.assertIn(
782+
'LOG: Backup {0} will be deleted'.format(page_id_a1),
783+
output)
784+
self.assertIn(
785+
'INFO: Resident data size to free by '
786+
'delete of backup {0} :'.format(page_id_a1),
787+
output)
788+
789+
self.assertIn(
790+
'On timeline 1 WAL segments between 0000000000000001 '
791+
'and 0000000000000002 will be removed',
792+
output)
793+
794+
self.assertEqual(len(self.show_pb(backup_dir, 'node')), 1)
795+
796+
# Clean after yourself
797+
self.del_test_dir(module_name, fname)

0 commit comments

Comments
 (0)