def test_map_temporary_config_files(self, tmpdir): """ Test the method that prepares configuration files for the final steps of a recovery """ # Build directory/files structure for testing tempdir = tmpdir.mkdir("tempdir") recovery_info = { "configuration_files": ["postgresql.conf", "postgresql.auto.conf"], "tempdir": tempdir.strpath, "temporary_configuration_files": [], "results": {"changes": [], "warnings": [], "missing_files": []}, } backup_info = testing_helpers.build_test_backup_info() backup_info.config.basebackups_directory = tmpdir.strpath datadir = tmpdir.mkdir(backup_info.backup_id).mkdir("data") postgresql_conf_local = datadir.join("postgresql.conf") postgresql_auto_local = datadir.join("postgresql.auto.conf") postgresql_conf_local.write("archive_command = something\n" "data_directory = something") postgresql_auto_local.write("archive_command = something\n" "data_directory = something") # Build a RecoveryExecutor object (using a mock as server and backup # manager. backup_manager = testing_helpers.build_backup_manager() executor = RecoveryExecutor(backup_manager) executor._map_temporary_config_files(recovery_info, backup_info, "ssh@something") # check that configuration files have been moved by the method assert tempdir.join("postgresql.conf").check() assert tempdir.join("postgresql.conf").computehash() == postgresql_conf_local.computehash() assert tempdir.join("postgresql.auto.conf").check() assert tempdir.join("postgresql.auto.conf").computehash() == postgresql_auto_local.computehash() assert recovery_info["results"]["missing_files"] == ["pg_hba.conf", "pg_ident.conf"]
def test_map_temporary_config_files(self, tmpdir): """ Test the method that prepares configuration files for the final steps of a recovery """ # Build directory/files structure for testing tempdir = tmpdir.mkdir("tempdir") recovery_info = { "configuration_files": ["postgresql.conf", "postgresql.auto.conf"], "tempdir": tempdir.strpath, "temporary_configuration_files": [], "results": {"changes": [], "warnings": [], "missing_files": []}, } backup_info = testing_helpers.build_test_backup_info() backup_info.config.basebackups_directory = tmpdir.strpath datadir = tmpdir.mkdir(backup_info.backup_id).mkdir("data") postgresql_conf_local = datadir.join("postgresql.conf") postgresql_auto_local = datadir.join("postgresql.auto.conf") postgresql_conf_local.write( "archive_command = something\n" "data_directory = something" ) postgresql_auto_local.write( "archive_command = something\n" "data_directory = something" ) # Build a RecoveryExecutor object (using a mock as server and backup # manager. backup_manager = testing_helpers.build_backup_manager() executor = RecoveryExecutor(backup_manager) executor._map_temporary_config_files( recovery_info, backup_info, "ssh@something" ) # check that configuration files have been moved by the method assert tempdir.join("postgresql.conf").check() assert ( tempdir.join("postgresql.conf").computehash() == postgresql_conf_local.computehash() ) assert tempdir.join("postgresql.auto.conf").check() assert ( tempdir.join("postgresql.auto.conf").computehash() == postgresql_auto_local.computehash() ) assert recovery_info["results"]["missing_files"] == [ "pg_hba.conf", "pg_ident.conf", ]
def test_map_temporary_config_files(self, tmpdir): """ Test the method that prepares configuration files for the final steps of a recovery """ # Build directory/files structure for testing tempdir = tmpdir.mkdir('tempdir') recovery_info = { 'configuration_files': ['postgresql.conf', 'postgresql.auto.conf'], 'tempdir': tempdir.strpath, 'temporary_configuration_files': [], 'results': { 'changes': [], 'warnings': [], 'missing_files': [] }, } backup_info = testing_helpers.build_test_backup_info() backup_info.config.basebackups_directory = tmpdir.strpath datadir = tmpdir.mkdir(backup_info.backup_id).mkdir('data') postgresql_conf_local = datadir.join('postgresql.conf') postgresql_auto_local = datadir.join('postgresql.auto.conf') postgresql_conf_local.write('archive_command = something\n' 'data_directory = something') postgresql_auto_local.write('archive_command = something\n' 'data_directory = something') # Build a RecoveryExecutor object (using a mock as server and backup # manager. backup_manager = testing_helpers.build_backup_manager() executor = RecoveryExecutor(backup_manager) executor._map_temporary_config_files(recovery_info, backup_info, 'ssh@something') # check that configuration files have been moved by the method assert tempdir.join('postgresql.conf').check() assert tempdir.join('postgresql.conf').computehash() == \ postgresql_conf_local.computehash() assert tempdir.join('postgresql.auto.conf').check() assert tempdir.join('postgresql.auto.conf').computehash() == \ postgresql_auto_local.computehash() assert recovery_info['results']['missing_files'] == [ 'pg_hba.conf', 'pg_ident.conf' ]