Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitdd14c27

Browse files
s.logvinenkos.logvinenko
s.logvinenko
authored and
s.logvinenko
committed
Update tests. Add cfs_validate_backup test
1 parent9489271 commitdd14c27

File tree

5 files changed

+143
-12
lines changed

5 files changed

+143
-12
lines changed

‎tests/__init__.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
ptrack_vacuum_bits_frozen,ptrack_vacuum_bits_visibility, \
88
ptrack_vacuum_full,ptrack_vacuum_truncate,pgpro560,pgpro589, \
99
false_positive,replica,compression,page,ptrack,archive, \
10-
cfs_backup_noenc,cfs_backup_enc,cfs_restore_noenc
10+
cfs_backup_noenc,cfs_backup_enc,cfs_restore_noenc,cfs_restore_enc, \
11+
cfs_validate_backup
1112

1213

1314
defload_tests(loader,tests,pattern):
@@ -40,7 +41,8 @@ def load_tests(loader, tests, pattern):
4041
suite.addTests(loader.loadTestsFromModule(cfs_backup_noenc))
4142
suite.addTests(loader.loadTestsFromModule(cfs_backup_enc))
4243
suite.addTests(loader.loadTestsFromModule(cfs_restore_noenc))
43-
44+
suite.addTests(loader.loadTestsFromModule(cfs_restore_enc))
45+
suite.addTests(loader.loadTestsFromModule(cfs_validate_backup))
4446
returnsuite
4547

4648
# ToDo:

‎tests/cfs_backup_enc.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
importos
22

33
from .cfs_backup_noencimportCfsBackupNoEncTest
4-
from .helpers.cfs_helpersimportfind_by_name
54

65
module_name='cfs_backup_enc'
76
tblspace_name='cfs_tblspace'

‎tests/cfs_restore_enc.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
importos
2+
3+
from .cfs_restore_noencimportCfsRestoreNoencEmptyTablespaceTest,CfsRestoreNoencTest
4+
5+
module_name='cfs_restore_enc'
6+
7+
8+
classCfsRestoreEncEmptyTablespaceTest(CfsRestoreNoencEmptyTablespaceTest):
9+
# --- Begin --- #
10+
defsetUp(self):
11+
os.environ["PG_CIPHER_KEY"]="super_secret_cipher_key"
12+
super(CfsRestoreNoencEmptyTablespaceTest,self).setUp()
13+
14+
15+
classCfsRestoreEncTest(CfsRestoreNoencTest):
16+
# --- Begin --- #
17+
defsetUp(self):
18+
os.environ["PG_CIPHER_KEY"]="super_secret_cipher_key"
19+
super(CfsRestoreNoencTest,self).setUp()

‎tests/cfs_restore_noenc.py

Lines changed: 95 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
importunittest
1313
importshutil
1414

15-
from .helpers.cfs_helpersimportfind_by_extensions,find_by_name
15+
from .helpers.cfs_helpersimportfind_by_name
1616
from .helpers.ptrack_helpersimportProbackupTest,ProbackupException
1717

1818

@@ -22,7 +22,7 @@
2222
tblspace_name_new='cfs_tblspace_new'
2323

2424

25-
classCfsRestoreBaseTest(ProbackupTest,unittest.TestCase):
25+
classCfsRestoreBase(ProbackupTest,unittest.TestCase):
2626
defsetUp(self):
2727
self.fname=self.id().split('.')[3]
2828
self.backup_dir=os.path.join(self.tmp_path,module_name,self.fname,'backup')
@@ -67,7 +67,7 @@ def tearDown(self):
6767
self.del_test_dir(module_name,self.fname)
6868

6969

70-
classCfsRestoreNoencEmptyTablespaceTest(CfsRestoreBaseTest):
70+
classCfsRestoreNoencEmptyTablespaceTest(CfsRestoreBase):
7171
# @unittest.expectedFailure
7272
# @unittest.skip("skip")
7373
deftest_restore_empty_tablespace_from_fullbackup(self):
@@ -111,7 +111,7 @@ def test_restore_empty_tablespace_from_fullbackup(self):
111111
)
112112

113113

114-
classCfsRestoreNoencTest(CfsRestoreBaseTest):
114+
classCfsRestoreNoencTest(CfsRestoreBase):
115115
defadd_data_in_cluster(self):
116116
self.node.safe_psql(
117117
"postgres",
@@ -147,7 +147,7 @@ def test_restore_from_fullbackup_to_old_location(self):
147147
)
148148
self.assertTrue(
149149
find_by_name([self.get_tblspace_path(self.node,tblspace_name)], ['pg_compression']),
150-
"ERROR: File pg_compression not found inbackup dir"
150+
"ERROR: File pg_compression not found intablespace dir"
151151
)
152152
try:
153153
self.node.start()
@@ -285,14 +285,100 @@ def test_restore_from_fullbackup_to_new_location_5_jobs(self):
285285
self.node_new.cleanup()
286286

287287
# @unittest.expectedFailure
288-
@unittest.skip("skip")
288+
#@unittest.skip("skip")
289289
deftest_restore_from_fullbackup_to_old_location_tablespace_new_location(self):
290-
pass
290+
self.node.stop(['-m','immediate'])
291+
self.node.cleanup()
292+
shutil.rmtree(self.get_tblspace_path(self.node,tblspace_name))
293+
294+
os.mkdir(self.get_tblspace_path(self.node,tblspace_name_new))
295+
296+
try:
297+
self.restore_node(
298+
self.backup_dir,
299+
'node',self.node,
300+
backup_id=self.backup_id,
301+
options=[
302+
"-T %s = %s".format(
303+
self.get_tblspace_path(self.node,tblspace_name),
304+
self.get_tblspace_path(self.node,tblspace_name_new)
305+
)
306+
]
307+
)
308+
exceptProbackupExceptionase:
309+
self.fail(
310+
"ERROR: Restore from full backup failed.\n {0}\n {1}".format(
311+
repr(self.cmd),
312+
repr(e.message)
313+
)
314+
)
315+
self.assertTrue(
316+
find_by_name([self.get_tblspace_path(self.node,tblspace_name_new)], ['pg_compression']),
317+
"ERROR: File pg_compression not found in new tablespace location"
318+
)
319+
try:
320+
self.node.start()
321+
exceptProbackupExceptionase:
322+
self.fail(
323+
"ERROR: Instance not started after restore.\n {0}\n {1}".format(
324+
repr(self.cmd),
325+
repr(e.message)
326+
)
327+
)
328+
329+
self.assertEqual(
330+
repr(self.node.safe_psql("postgres","SELECT * FROM %s"%'t1')),
331+
repr(self.table_t1)
332+
)
291333

292334
# @unittest.expectedFailure
293-
@unittest.skip("skip")
335+
#@unittest.skip("skip")
294336
deftest_restore_from_fullbackup_to_old_location_tablespace_new_location_3_jobs(self):
295-
pass
337+
self.node.stop(['-m','immediate'])
338+
self.node.cleanup()
339+
shutil.rmtree(self.get_tblspace_path(self.node,tblspace_name))
340+
341+
os.mkdir(self.get_tblspace_path(self.node,tblspace_name_new))
342+
343+
try:
344+
self.restore_node(
345+
self.backup_dir,
346+
'node',self.node,
347+
backup_id=self.backup_id,
348+
options=[
349+
"j",
350+
"3",
351+
"-T %s = %s".format(
352+
self.get_tblspace_path(self.node,tblspace_name),
353+
self.get_tblspace_path(self.node,tblspace_name_new)
354+
)
355+
]
356+
)
357+
exceptProbackupExceptionase:
358+
self.fail(
359+
"ERROR: Restore from full backup failed.\n {0}\n {1}".format(
360+
repr(self.cmd),
361+
repr(e.message)
362+
)
363+
)
364+
self.assertTrue(
365+
find_by_name([self.get_tblspace_path(self.node,tblspace_name_new)], ['pg_compression']),
366+
"ERROR: File pg_compression not found in new tablespace location"
367+
)
368+
try:
369+
self.node.start()
370+
exceptProbackupExceptionase:
371+
self.fail(
372+
"ERROR: Instance not started after restore.\n {0}\n {1}".format(
373+
repr(self.cmd),
374+
repr(e.message)
375+
)
376+
)
377+
378+
self.assertEqual(
379+
repr(self.node.safe_psql("postgres","SELECT * FROM %s"%'t1')),
380+
repr(self.table_t1)
381+
)
296382

297383
# @unittest.expectedFailure
298384
@unittest.skip("skip")

‎tests/cfs_validate_backup.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
importos
2+
importunittest
3+
importrandom
4+
5+
from .helpers.cfs_helpersimportfind_by_extensions,find_by_name,find_by_pattern,corrupt_file
6+
from .helpers.ptrack_helpersimportProbackupTest,ProbackupException
7+
8+
module_name='cfs_validate_backup'
9+
tblspace_name='cfs_tblspace'
10+
11+
12+
classCfsValidateBackupNoenc(ProbackupTest,unittest.TestCase):
13+
defsetUp(self):
14+
pass
15+
16+
deftest_validate_fullbackup_empty_tablespace_after_delete_pg_compression(self):
17+
pass
18+
19+
deftearDown(self):
20+
pass
21+
22+
23+
classCfsValidateBackupNoenc(CfsValidateBackupNoenc):
24+
os.environ["PG_CIPHER_KEY"]="super_secret_cipher_key"
25+
super(CfsValidateBackupNoenc).setUp()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp