def testRoot(self):

        uids = self.uids
        rows = self.rows

        assertEqual = self.assertEqual
        assertTrue = self.assertTrue

        # Top root
        node = uids["LHIERARCHY1-1-1"]
        h = S3Hierarchy("test_lhierarchy")
        root = h.root(node)
        assertEqual(root, uids["LHIERARCHY1"])

        # Root by category
        node = uids["LHIERARCHY2-1"]
        root = h.root(node, classify=True)
        assertEqual(root, (uids["LHIERARCHY2"],
                           rows["LHIERARCHY2"].category))

        # Root of root
        node = uids["LHIERARCHY1"]
        root = h.root(node)
        assertEqual(root, uids["LHIERARCHY1"])

        # None
        root = h.root(None)
        assertEqual(root, None)

    # -------------------------------------------------------------------------
This runs *before* the executeList function is executed.
dataset/ETHPy150Open sahana/eden/modules/unit_tests/s3/s3hierarchy.py/S3LinkedHierarchyTests.testRoot--crossover with--dataset/ETHPy150Open andrew-gardner/dependsworkflow/depends/depends_node.py/DagNode.preProcess