from __future__ import annotations from metadata import TableName from tests.pytest_compat import pytest def test_table_name_from_qualified_accepts_supported_forms() -> None: cases = [ ("test.t", TableName("test", "t"), "`test`.`t`"), ("`a.b`.`c`", TableName("a.b", "c"), "`a.b`.`c`"), ("`te.st`.`t.t`", TableName("te.st", "t.t"), "`te.st`.`t.t`"), ("`a``b`.`c`", TableName("a`b", "c"), "`a``b`.`c`"), ] for value, expected, quoted in cases: table_name = TableName.from_qualified(value) assert table_name == expected assert table_name.source_schema == expected.source_schema assert table_name.source_table == expected.source_table assert str(table_name) == quoted def test_table_name_from_qualified_rejects_invalid_forms() -> None: for value in ("a.b.c", "te.st.t.t", "test.", "`a.b`.c`", "`a.b`.c`d", "a`b.c"): with pytest.raises(ValueError): TableName.from_qualified(value)