45 changes: 44 additions & 1 deletion ibis/backends/trino/tests/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,17 @@
import pytest

import ibis
from ibis.backends.trino.tests.conftest import (
TRINO_HOST,
TRINO_PASS,
TRINO_PORT,
TRINO_USER,
)


@pytest.fixture
def tmp_name(con):
name = ibis.util.gen_name("test_trino_table_properties")
name = ibis.util.gen_name("test_trino")
yield name
con.drop_table(name, force=True)

Expand All @@ -33,3 +39,40 @@ def test_table_properties(tmp_name):
ddl = c.exec_driver_sql(f"SHOW CREATE TABLE {tmp_name}").scalar()
assert "ORC" in ddl
assert "bucketed_by" in ddl


def test_hive_table_overwrite(tmp_name):
con = ibis.trino.connect(database="hive", schema="default")
schema = ibis.schema(dict(a="int"))

t = con.create_table(tmp_name, schema=schema)
assert tmp_name in con.list_tables()
assert t.schema() == schema

t = con.create_table(tmp_name, schema=schema, overwrite=True)
assert tmp_name in con.list_tables()
assert t.schema() == schema


def test_list_catalogs(con):
assert {"hive", "postgresql", "memory", "system", "tpch", "tpcds"}.issubset(
con.list_databases()
)


def test_list_schemas(con):
assert {"information_schema", "sf1"}.issubset(con.list_schemas(database="tpch"))


@pytest.mark.parametrize(("source", "expected"), [(None, "ibis"), ("foo", "foo")])
def test_con_source(source, expected):
con = ibis.trino.connect(
user=TRINO_USER,
host=TRINO_HOST,
port=TRINO_PORT,
password=TRINO_PASS,
database="hive",
schema="default",
source=source,
)
assert con.con.url.query["source"] == expected
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "ibis-framework"
version = "6.1.0"
version = "6.2.0"
packages = [{ include = "ibis" }]
include = [
"ibis/examples/*.json",
Expand Down