def test_check_wal_archive_missing_bucket( self, mock_cloud_interface, mock_cloud_backup_catalog, ): """Verify a missing bucket passes the check""" mock_cloud_interface.return_value.bucket_exists = False cloud_check_wal_archive.main(["cloud_storage_url", "test_server"]) mock_cloud_backup_catalog.assert_not_called()
def test_exits_on_connectivity_test(self, get_cloud_interface_mock): """If the -t option is used we check connectivity and exit.""" cloud_interface_mock = get_cloud_interface_mock.return_value cloud_interface_mock.test_connectivity.return_value = True with pytest.raises(SystemExit) as exc: cloud_check_wal_archive.main( ["cloud_storage_url", "test_server", "-t"]) assert exc.value.code == 0 cloud_interface_mock.test_connectivity.assert_called_once()
def test_check_wal_archive_failed_connectivity(self, mock_cloud_interface, caplog): """Verify the check errors if we cannot connect to the cloud provider""" mock_cloud_interface.return_value.test_connectivity.return_value = False with pytest.raises(SystemExit) as exc: cloud_check_wal_archive.main(["cloud_storage_url", "test_server"]) assert 2 == exc.value.code mock_cloud_interface.return_value.test_connectivity.assert_called_once_with( )
def test_check_wal_archive_no_args( self, mock_cloud_interface, mock_cloud_backup_catalog, mock_check_archive_usable, cloud_backup_catalog, ): """Verify xlog.check_archive_usable is called with no additional args.""" mock_cloud_interface.return_value.bucket_exists = True mock_cloud_backup_catalog.return_value = cloud_backup_catalog cloud_check_wal_archive.main(["cloud_storage_url", "test_server"]) mock_check_archive_usable.assert_called_once_with( ["000000010000000000000001"], timeline=None, )
def test_check_wal_archive_exception( self, mock_cloud_interface, mock_cloud_backup_catalog, mock_check_archive_usable, cloud_backup_catalog, caplog, ): """Verify log output when there is an error checking the wal archive""" mock_cloud_interface.return_value.bucket_exists = True mock_cloud_backup_catalog.return_value = cloud_backup_catalog mock_check_archive_usable.side_effect = Exception("oh dear") with pytest.raises(SystemExit) as exc: cloud_check_wal_archive.main(["cloud_storage_url", "test_server"]) assert 4 == exc.value.code assert "Barman cloud WAL archive check exception: oh dear" in caplog.text
def test_check_wal_archive_content_error( self, mock_cloud_interface, mock_cloud_backup_catalog, mock_check_archive_usable, cloud_backup_catalog, caplog, ): """Verify log output when wal archive check fails""" mock_cloud_interface.return_value.bucket_exists = True mock_cloud_backup_catalog.return_value = cloud_backup_catalog mock_check_archive_usable.side_effect = WalArchiveContentError( "oh dear") with pytest.raises(SystemExit) as exc: cloud_check_wal_archive.main(["cloud_storage_url", "test_server"]) assert 1 == exc.value.code assert "WAL archive check failed for server test_server: oh dear" in caplog.text