def test_error_if_backup_id_not_provided( self, uploader_mock, cloud_interface_mock, rmtree_mock, tempfile_mock, caplog, ): with pytest.raises(SystemExit): cloud_backup.main(["cloud_storage_url", "test_server"]) assert "BARMAN_BACKUP_ID environment variable not set" in caplog.messages[0] cloud_interface_mock.assert_called_once() uploader_mock.assert_not_called()
def test_error_if_running_as_unsupported_hook( self, uploader_mock, cloud_interface_mock, rmtree_mock, tempfile_mock, caplog, ): with pytest.raises(SystemExit): cloud_backup.main(["cloud_storage_url", "test_server"]) assert ("barman-cloud-backup called as unsupported hook script" in caplog.messages[0]) cloud_interface_mock.assert_called_once() uploader_mock.assert_not_called()
def test_uses_barman_backup_uploader_when_running_as_hook( self, uploader_mock, cloud_interface_mock, rmtree_mock, tempfile_mock, ): uploader = uploader_mock.return_value cloud_backup.main(["cloud_storage_url", "test_server"]) cloud_interface_mock.assert_called_once() uploader_mock.assert_called_once_with( server_name="test_server", compression=None, max_archive_size=107374182400, cloud_interface=cloud_interface_mock.return_value, backup_dir=EXAMPLE_BACKUP_DIR, backup_id=EXAMPLE_BACKUP_ID, ) uploader.backup.assert_called_once()
def test_uses_postgres_backup_uploader_when_not_running_as_hook( self, uploader_mock, cloud_interface_mock, postgres_connection, rmtree_mock, tempfile_mock, ): uploader = uploader_mock.return_value cloud_backup.main(["cloud_storage_url", "test_server"]) postgres_connection.assert_called_once() cloud_interface_mock.assert_called_once() uploader_mock.assert_called_once_with( server_name="test_server", compression=None, postgres=postgres_connection.return_value, max_archive_size=107374182400, cloud_interface=cloud_interface_mock.return_value, ) uploader.backup.assert_called_once()
def test_error_if_backup_status_is_not_DONE( self, uploader_mock, cloud_interface_mock, rmtree_mock, tempfile_mock, caplog, ): with pytest.raises(SystemExit) as exc: cloud_backup.main(["cloud_storage_url", "test_server"]) # Barman hook scripts should exit with status 63 if the failure is not # recoverable and barman should not continue. assert exc.value.code == 63 expected_error = "backup in '%s' has status '%s' (status should be: DONE)" % ( EXAMPLE_BACKUP_DIR, "WAITING_FOR_WALS", ) assert expected_error in caplog.messages[0] cloud_interface_mock.assert_called_once() uploader_mock.assert_not_called()