summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test_expressions.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/test_expressions.py b/tests/test_expressions.py
index 59d584c..64ad02d 100644
--- a/tests/test_expressions.py
+++ b/tests/test_expressions.py
@@ -414,3 +414,34 @@ class TestExpressions(unittest.TestCase):
self.assertEqual(parse_one("heLLO()").sql(normalize_functions=None), "heLLO()")
self.assertEqual(parse_one("SUM(x)").sql(normalize_functions="lower"), "sum(x)")
self.assertEqual(parse_one("sum(x)").sql(normalize_functions="upper"), "SUM(x)")
+
+ def test_properties_from_dict(self):
+ self.assertEqual(
+ exp.Properties.from_dict(
+ {
+ "FORMAT": "parquet",
+ "PARTITIONED_BY": [exp.to_identifier("a"), exp.to_identifier("b")],
+ "custom": 1,
+ "TABLE_FORMAT": exp.to_identifier("test_format"),
+ "ENGINE": None,
+ "COLLATE": True,
+ }
+ ),
+ exp.Properties(
+ expressions=[
+ exp.FileFormatProperty(this=exp.Literal.string("FORMAT"), value=exp.Literal.string("parquet")),
+ exp.PartitionedByProperty(
+ this=exp.Literal.string("PARTITIONED_BY"),
+ value=exp.Tuple(expressions=[exp.to_identifier("a"), exp.to_identifier("b")]),
+ ),
+ exp.AnonymousProperty(this=exp.Literal.string("custom"), value=exp.Literal.number(1)),
+ exp.TableFormatProperty(
+ this=exp.Literal.string("TABLE_FORMAT"), value=exp.to_identifier("test_format")
+ ),
+ exp.EngineProperty(this=exp.Literal.string("ENGINE"), value=exp.NULL),
+ exp.CollateProperty(this=exp.Literal.string("COLLATE"), value=exp.TRUE),
+ ]
+ ),
+ )
+
+ self.assertRaises(ValueError, exp.Properties.from_dict, {"FORMAT": {"key": "value"}})