Example #1
0
class PathTestCase(unittest.TestCase):

    def setUp(self):
        self.r = Node()
        self.a = Node(None, self.r, "a")
        self.b = Node(None, self.a, "b")

    def testRelative(self):
        self.assertEquals(self.r.relative_path("@root"), ".")
        self.assertEquals(self.r.relative_path("@root.a"), "a")
        self.assertEquals(self.r.relative_path("@root.a.b"), "a.b")
        self.assertEquals(self.r.relative_path("@root.a.b.c"), "a.b.c")
        self.assertEquals(self.a.relative_path("@root"), "..")
        self.assertEquals(self.a.relative_path("@root.a"), ".")
        self.assertEquals(self.a.relative_path("@root.a.b"), "b")
        self.assertEquals(self.a.relative_path("@root.a.b.c"), "b.c")
        self.assertEquals(self.b.relative_path("@root"), "...")
        self.assertEquals(self.b.relative_path("@root.a"), "..")
        self.assertEquals(self.b.relative_path("@root.a.b"), ".")
        self.assertEquals(self.b.relative_path("@root.a.b.c"), "c")
        self.assertEquals(self.b.relative_path("@root.x.y.z"), "...x.y.z")
        self.assertEquals(self.b.relative_path("@root.a.x.y"), "..x.y")

    def testAbsolute(self):
        self.assertEquals(self.r.absolute_path("."), "@root")
        self.assertEquals(self.r.absolute_path("a"), "@root.a")
        self.assertEquals(self.r.absolute_path(".a"), "@root.a")
        self.assertEquals(self.r.absolute_path("a.b"), "@root.a.b")
        self.assertEquals(self.b.absolute_path("."), "@root.a.b")
        self.assertEquals(self.b.absolute_path(".."), "@root.a")
        self.assertEquals(self.b.absolute_path("..."), "@root")
        self.assertEquals(self.b.absolute_path("x"), "@root.a.b.x")
        self.assertEquals(self.b.absolute_path(".x"), "@root.a.b.x")
        self.assertEquals(self.b.absolute_path("..x"), "@root.a.x")
        self.assertEquals(self.b.absolute_path("...x"), "@root.x")
        self.assertRaises(errors.CoilError,
                self.r.absolute_path, "..")
        self.assertRaises(errors.CoilError,
                self.a.absolute_path, "...")
        self.assertRaises(errors.CoilError,
                self.b.absolute_path, "....")
Example #2
0
 def setUp(self):
     self.r = Node()
     self.a = Node(None, self.r, "a")
     self.b = Node(None, self.a, "b")
Example #3
0
class BasicTestCase(unittest.TestCase):

    def setUp(self):
        self.r = Node()
        self.a = Node(None, self.r, "a")
        self.b = Node(None, self.a, "b")

    def assertRelative(self, link, expect):
        relative = link.relative_path(link.link_path, '..')
        self.assertEquals(relative, expect)

    def assertAbsolute(self, link, expect):
        absolute = link.absolute_path(link.link_path, '..')
        self.assertEquals(absolute, expect)

    def testInit(self):
        w = Link("@root", self.r, "w")
        x = Link("i.j.k", self.r, "x")
        y = Link("..j.k", self.a, "y")
        z = Link("..k", self.b, "z")
        self.assertRelative(w, ".")
        self.assertAbsolute(w, "@root")
        self.assertRelative(x, "i.j.k")
        self.assertAbsolute(x, "@root.i.j.k")
        self.assertRelative(y, "..j.k")
        self.assertAbsolute(y, "@root.j.k")
        self.assertRelative(z, "..k")
        self.assertAbsolute(z, "@root.a.k")
        self.assertRaises(errors.CoilError, Link, "..z", self.r, "z")

    def testCopy1(self):
        x = Link("b", self.a, "x")
        self.assertEquals(x.node_path, "@root.a.x")
        self.assertRelative(x, "b")
        self.assertAbsolute(x, "@root.a.b")
        a2 = self.a.copy()
        x2 = x.copy(a2, "x")
        self.assertEquals(x2.node_path, "@root.x")
        self.assertRelative(x2, "b")
        self.assertAbsolute(x2, "@root.b")

    def testCopy2(self):
        x = Link("..i", self.a, "x")
        y = x.copy(self.b, "y")
        self.assertEquals(x.node_path, "@root.a.x")
        self.assertRelative(x, "..i")
        self.assertAbsolute(x, "@root.i")
        self.assertEquals(y.node_path, "@root.a.b.y")
        self.assertRelative(y, "..i")
        self.assertAbsolute(y, "@root.a.i")

    def testCopyTree1(self):
        x = Link("i", self.a, "x")
        self.assertEquals(x.node_path, "@root.a.x")
        self.assertEquals(x.link_path, "i")
        self.assertRelative(x, "i")
        self.assertAbsolute(x, "@root.a.i")
        y = x.copy(self.b, "y")
        self.assertEquals(y.node_path, "@root.a.b.y")
        self.assertEquals(y.link_path, "i")
        self.assertRelative(y, "i")
        self.assertAbsolute(y, "@root.a.b.i")

        r2 = self.r.copy()
        a2 = self.a.copy(r2, "a")
        b2 = self.b.copy(a2, "b")
        x2 = x.copy(a2, "x")
        y2 = y.copy(b2, "y")

        self.assertEquals(x2.node_path, "@root.a.x")
        self.assertEquals(x2.link_path, "i")
        self.assertRelative(x2, "i")
        self.assertAbsolute(x2, "@root.a.i")
        self.assertEquals(y2.node_path, "@root.a.b.y")
        self.assertEquals(y2.link_path, "i")
        self.assertRelative(y2, "i")
        self.assertAbsolute(y2, "@root.a.b.i")

    def testCopyTree2(self):
        x = Link("@root.a.i", self.a, "x")
        self.assertEquals(x.node_path, "@root.a.x")
        self.assertEquals(x.link_path, "@root.a.i")
        self.assertRelative(x, "i")
        self.assertAbsolute(x, "@root.a.i")
        y = x.copy(self.b, "y")
        self.assertEquals(y.node_path, "@root.a.b.y")
        self.assertEquals(y.link_path, "@root.a.i")
        self.assertRelative(y, "..i")
        self.assertAbsolute(y, "@root.a.i")

        r2 = self.r.copy()
        a2 = self.a.copy(r2, "a")
        b2 = self.b.copy(a2, "b")
        x2 = x.copy(a2, "x")
        y2 = y.copy(b2, "y")

        self.assertEquals(x2.node_path, "@root.a.x")
        self.assertEquals(x2.link_path, "@root.a.i")
        self.assertRelative(x2, "i")
        self.assertAbsolute(x2, "@root.a.i")
        self.assertEquals(y2.node_path, "@root.a.b.y")
        self.assertEquals(y2.link_path, "@root.a.i")
        self.assertRelative(y2, "..i")
        self.assertAbsolute(y2, "@root.a.i")

    def testCopySubTree1(self):
        x = Link("i", self.a, "x")
        self.assertEquals(x.node_path, "@root.a.x")
        self.assertEquals(x.link_path, "i")
        self.assertRelative(x, "i")
        self.assertAbsolute(x, "@root.a.i")
        y = x.copy(self.b, "y")
        self.assertEquals(y.node_path, "@root.a.b.y")
        self.assertEquals(y.link_path, "i")
        self.assertRelative(y, "i")
        self.assertAbsolute(y, "@root.a.b.i")

        a2 = self.a.copy()
        b2 = self.b.copy(a2, "b")
        x2 = x.copy(a2, "x")
        y2 = y.copy(b2, "y")

        self.assertEquals(x2.node_path, "@root.x")
        self.assertEquals(x2.link_path, "i")
        self.assertRelative(x2, "i")
        self.assertAbsolute(x2, "@root.i")
        self.assertEquals(y2.node_path, "@root.b.y")
        self.assertEquals(y2.link_path, "i")
        self.assertRelative(y2, "i")
        self.assertAbsolute(y2, "@root.b.i")

    def testCopySubTree2(self):
        x = Link("@root.a.i", self.a, "x")
        self.assertEquals(x.node_path, "@root.a.x")
        self.assertEquals(x.link_path, "@root.a.i")
        self.assertRelative(x, "i")
        self.assertAbsolute(x, "@root.a.i")
        y = x.copy(self.b, "y")
        self.assertEquals(y.node_path, "@root.a.b.y")
        self.assertEquals(y.link_path, "@root.a.i")
        self.assertRelative(y, "..i")
        self.assertAbsolute(y, "@root.a.i")

        a2 = self.a.copy()
        b2 = self.b.copy(a2, "b")
        x2 = x.copy(a2, "x")
        y2 = y.copy(b2, "y")

        self.assertEquals(x2.node_path, "@root.x")
        self.assertEquals(x2.link_path, "@root.i")
        self.assertRelative(x2, "i")
        self.assertAbsolute(x2, "@root.i")
        self.assertEquals(y2.node_path, "@root.b.y")
        self.assertEquals(y2.link_path, "@root.i")
        self.assertRelative(y2, "..i")
        self.assertAbsolute(y2, "@root.i")