Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/py-polars/tests/unit/interop/test_arrow_stream_error.py
8407 views
1
"""Test for https://github.com/pola-rs/polars/issues/25966."""
2
3
from __future__ import annotations
4
5
from typing import TYPE_CHECKING
6
7
import pyarrow as pa
8
import pytest
9
10
import polars as pl
11
from polars.exceptions import ComputeError
12
13
if TYPE_CHECKING:
14
from collections.abc import Iterator
15
16
17
def test_arrow_stream_error_raises_compute_error() -> None:
18
error_msg = "simulated error"
19
20
def failing_generator() -> Iterator[pa.RecordBatch]:
21
raise pa.ArrowInvalid(error_msg)
22
yield
23
24
schema = pa.schema([("col", pa.int64())])
25
reader = pa.RecordBatchReader.from_batches(schema, failing_generator())
26
27
class FailingStream:
28
def __arrow_c_stream__(self, requested_schema: object = None) -> object:
29
return reader.__arrow_c_stream__(requested_schema)
30
31
with pytest.raises(ComputeError, match=error_msg):
32
pl.from_arrow(FailingStream())
33
34