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()
Пример #2
0
    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()