summaryrefslogtreecommitdiffstats
path: root/tests/test_helper.py
blob: d37c03acd691856d012705d4b613b2219bd14ca4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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": [],
                }
            )