Skip to content

Commit 8ca3b3a

Browse files
committed
fix: add tests for TableProvider from DataFrame and capsule registration
1 parent 9e7f66c commit 8ca3b3a

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

python/tests/test_context.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,30 @@ def test_table_provider_from_capsule(ctx):
349349
assert [b.to_pydict() for b in result] == [{"a": [1, 2]}]
350350

351351

352+
def test_table_provider_from_dataframe(ctx):
353+
df = ctx.from_pydict({"a": [1, 2]}).df
354+
provider = TableProvider.from_dataframe(df)
355+
ctx.register_table("from_dataframe_tbl", provider)
356+
result = ctx.sql("SELECT * FROM from_dataframe_tbl").collect()
357+
assert [b.to_pydict() for b in result] == [{"a": [1, 2]}]
358+
359+
360+
def test_register_table_capsule_direct(ctx):
361+
df = ctx.from_pydict({"a": [1, 2]})
362+
provider = df.into_view()
363+
364+
class CapsuleProvider:
365+
def __init__(self, inner):
366+
self._inner = inner
367+
368+
def __datafusion_table_provider__(self):
369+
return self._inner.__datafusion_table_provider__()
370+
371+
ctx.register_table("capsule_direct_tbl", CapsuleProvider(provider))
372+
result = ctx.sql("SELECT * FROM capsule_direct_tbl").collect()
373+
assert [b.to_pydict() for b in result] == [{"a": [1, 2]}]
374+
375+
352376
def test_table_provider_from_capsule_invalid():
353377
with pytest.raises(Exception): # noqa: B017
354378
TableProvider.from_capsule(object())

0 commit comments

Comments
 (0)