@@ -2298,3 +2298,46 @@ def test_restore_concurrent_drop_table(self):
22982298
22992299# Clean after yourself
23002300self .del_test_dir (module_name ,fname )
2301+
2302+ # @unittest.skip("skip")
2303+ def test_lost_non_data_file (self ):
2304+ """"""
2305+ fname = self .id ().split ('.' )[3 ]
2306+ backup_dir = os .path .join (self .tmp_path ,module_name ,fname ,'backup' )
2307+ node = self .make_simple_node (
2308+ base_dir = os .path .join (module_name ,fname ,'node' ),
2309+ set_replication = True ,
2310+ initdb_params = ['--data-checksums' ])
2311+
2312+ self .init_pb (backup_dir )
2313+ self .add_instance (backup_dir ,'node' ,node )
2314+ node .slow_start ()
2315+
2316+ # FULL backup
2317+ backup_id = self .backup_node (
2318+ backup_dir ,'node' ,node ,options = ['--stream' ])
2319+
2320+ file = os .path .join (
2321+ backup_dir ,'backups' ,'node' ,
2322+ backup_id ,'database' ,'postgresql.auto.conf' )
2323+
2324+ os .remove (file )
2325+
2326+ node .cleanup ()
2327+
2328+ try :
2329+ self .restore_node (
2330+ backup_dir ,'node' ,node ,options = ['--no-validate' ])
2331+ self .assertEqual (
2332+ 1 ,0 ,
2333+ "Expecting Error because of non-data file dissapearance.\n "
2334+ "Output: {0}\n CMD: {1}" .format (
2335+ self .output ,self .cmd ))
2336+ except ProbackupException as e :
2337+ self .assertIn (
2338+ 'Insert correct error message' ,e .message ,
2339+ '\n Unexpected Error Message: {0}\n CMD: {1}' .format (
2340+ repr (e .message ),self .cmd ))
2341+
2342+ # Clean after yourself
2343+ self .del_test_dir (module_name ,fname )