summaryrefslogtreecommitdiffstats
path: root/tests/test_helper.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_helper.py')
-rw-r--r--tests/test_helper.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/test_helper.py b/tests/test_helper.py
new file mode 100644
index 0000000..d37c03a
--- /dev/null
+++ b/tests/test_helper.py
@@ -0,0 +1,31 @@
+import unittest
+
+from sqlglot.helper import tsort
+
+
+class TestHelper(unittest.TestCase):
+ def test_tsort(self):
+ self.assertEqual(tsort({"a": []}), ["a"])
+ self.assertEqual(tsort({"a": ["b", "b"]}), ["b", "a"])
+ self.assertEqual(tsort({"a": ["b"]}), ["b", "a"])
+ self.assertEqual(tsort({"a": ["c"], "b": [], "c": []}), ["c", "a", "b"])
+ self.assertEqual(
+ tsort(
+ {
+ "a": ["b", "c"],
+ "b": ["c"],
+ "c": [],
+ "d": ["a"],
+ }
+ ),
+ ["c", "b", "a", "d"],
+ )
+
+ with self.assertRaises(ValueError):
+ tsort(
+ {
+ "a": ["b", "c"],
+ "b": ["a"],
+ "c": [],
+ }
+ )