Exemplo n.º 1
0
 def test_source_root_tree_node(self):
     root = SourceRootTree.Node("ROOT")
     self.assertIsNone(root.get("child1"))
     self.assertIsNone(root.get("child2"))
     child = root.get_or_add("child1")
     self.assertIsNotNone(child)
     self.assertEquals(child, root.get("child1"))
     self.assertIsNone(root.get("child2"))
     grandchild = child.get_or_add("grandchild")
     self.assertIsNone(root.get("grandchild"))
     self.assertEquals(grandchild, child.get("grandchild"))
     # Retrieve the same object on re-insertion
     self.assertEquals(grandchild, child.get_or_add("grandchild"))
Exemplo n.º 2
0
    def test_get_root_siblings(self):
        tree = SourceRootTree()

        self._add_siblings1(tree, "")
        self.assertEquals([], tree.get_root_siblings("foo/bar/baz"))
        self.assertEquals([], tree.get_root_siblings("src"))
        self.assertEquals(["src/java", "src/resources"],
                          tree.get_root_siblings("src/java"))
        self.assertEquals(["src/java", "src/resources"],
                          tree.get_root_siblings("src/resources"))
        self.assertEquals(["src/java", "src/resources"],
                          tree.get_root_siblings("src/java/com/pants/foo"))
        self.assertEquals(
            ["src/java", "src/resources"],
            tree.get_root_siblings("src/resources/com/pants/foo"))
        self.assertEquals([], tree.get_root_siblings("src/foo/bar/baz"))
        self.assertEquals(["tests/java", "tests/resources"],
                          tree.get_root_siblings("tests/java/com/pants/foo"))
        self.assertEquals(
            ["tests/java", "tests/resources"],
            tree.get_root_siblings("tests/resources/com/pants/foo"))
        self.assertEquals([], tree.get_root_siblings("tests/foo/bar/baz"))

        self._add_siblings1(tree, "examples")
        self.assertEquals([], tree.get_root_siblings("foo/bar/baz"))
        self.assertEquals(["src/java", "src/resources"],
                          tree.get_root_siblings("src/java/com/pants/foo"))
        self.assertEquals(
            ["tests/java", "tests/resources"],
            tree.get_root_siblings("tests/resources/com/pants/foo"))
        self.assertEquals(
            ["examples/src/java", "examples/src/resources"],
            tree.get_root_siblings("examples/src/java/com/pants/foo"))
        self.assertEquals(
            ["examples/tests/java", "examples/tests/resources"],
            tree.get_root_siblings("examples/tests/resources/com/pants/foo"))
Exemplo n.º 3
0
    def test_source_root_tree(self):
        tree = SourceRootTree()
        self.assertEquals((None, None), tree.get_root_and_types(""))
        self.assertEquals((None, None),
                          tree.get_root_and_types("tests/language"))
        self.assertEquals((None, None),
                          tree.get_root_and_types("tests/language/foo"))
        self.assertEquals((None, None),
                          tree.get_root_and_types("src/language"))
        self.assertEquals((None, None), tree.get_root_and_types("src"))

        tree.add_root("tests/language", set([NotTestTarget, TestTarget]))
        self.assertEquals(
            ("tests/language", OrderedSet([NotTestTarget, TestTarget])),
            tree.get_root_and_types("tests/language"),
            msg="Failed for tree: {dump}".format(dump=tree._dump()))
        self.assertEquals(
            ("tests/language", set([NotTestTarget, TestTarget])),
            tree.get_root_and_types("tests/language/foo"),
            msg="Failed for tree: {dump}".format(dump=tree._dump()))
        self.assertEquals(
            (None, None),
            tree.get_root_and_types("src"),
            msg="Failed for tree: {dump}".format(dump=tree._dump()))
        self.assertEquals(
            (None, None),
            tree.get_root_and_types("src/bar"),
            msg="Failed for tree: {dump}".format(dump=tree._dump()))
        self.assertEquals(
            (None, None),
            tree.get_root_and_types("s"),
            msg="Failed for tree: {dump}".format(dump=tree._dump()))

        tree.add_root("src/language", set([NotTestTarget]))
        self.assertEquals(
            ("tests/language", OrderedSet([NotTestTarget, TestTarget])),
            tree.get_root_and_types("tests/language"),
            msg="Failed for tree: {dump}".format(dump=tree._dump()))
        self.assertEquals(
            ("tests/language", OrderedSet([NotTestTarget, TestTarget])),
            tree.get_root_and_types("tests/language/foo"),
            msg="Failed for tree: {dump}".format(dump=tree._dump()))
        self.assertEquals(
            ("src/language", OrderedSet([NotTestTarget])),
            tree.get_root_and_types("src/language"),
            msg="Failed for tree: {dump}".format(dump=tree._dump()))
        self.assertEquals(
            ("src/language", OrderedSet([NotTestTarget])),
            tree.get_root_and_types("src/language/bar"),
            msg="Failed for tree: {dump}".format(dump=tree._dump()))
        self.assertEquals(
            (None, None),
            tree.get_root_and_types("src"),
            msg="Failed for tree: {dump}".format(dump=tree._dump()))
        with self.assertRaises(SourceRootTree.DuplicateSourceRootError):
            tree.add_root("tests/language", set([NotTestTarget]))
        with self.assertRaises(SourceRootTree.NestedSourceRootError):
            tree.add_root("tests", set([NotTestTarget]))
Exemplo n.º 4
0
 def test_mutable(self):
     tree = SourceRootTree()
     tree.add_root("mutable/foo",
                   set([NotTestTarget, TestTarget]),
                   mutable=True)
     tree.add_root("immutable/foo",
                   set([NotTestTarget, TestTarget]),
                   mutable=False)
     with self.assertRaises(SourceRootTree.DuplicateSourceRootError):
         # Can't add an immutable root to a mutable root
         tree.add_root("mutable/foo", set([AnotherTarget]))
     with self.assertRaises(SourceRootTree.DuplicateSourceRootError):
         # Can't add an mutable root to an immutable root
         tree.add_root("immutable/foo", set([AnotherTarget]), mutable=True)
     # But can add a mutable root to a mutable root
     tree.add_root("mutable/foo", set([AnotherTarget]), mutable=True)
     self.assertEquals(
         set([AnotherTarget, NotTestTarget, TestTarget]),
         set(tree.get_root_and_types("mutable/foo")[1]),
         msg="Failed for tree: {dump}".format(dump=tree._dump()))
Exemplo n.º 5
0
    def test_get_root_siblings(self):
        tree = SourceRootTree()

        self._add_siblings1(tree, "")
        self.assertEquals([], tree.get_root_siblings("foo/bar/baz"))
        self.assertEquals([], tree.get_root_siblings("src"))
        self.assertEquals(["src/java", "src/resources"], tree.get_root_siblings("src/java"))
        self.assertEquals(["src/java", "src/resources"], tree.get_root_siblings("src/resources"))
        self.assertEquals(["src/java", "src/resources"], tree.get_root_siblings("src/java/org/pantsbuild/foo"))
        self.assertEquals(["src/java", "src/resources"], tree.get_root_siblings("src/resources/org/pantsbuild/foo"))
        self.assertEquals([], tree.get_root_siblings("src/foo/bar/baz"))
        self.assertEquals(["tests/java", "tests/resources"], tree.get_root_siblings("tests/java/org/pantsbuild/foo"))
        self.assertEquals(
            ["tests/java", "tests/resources"], tree.get_root_siblings("tests/resources/org/pantsbuild/foo")
        )
        self.assertEquals([], tree.get_root_siblings("tests/foo/bar/baz"))

        self._add_siblings1(tree, "examples")
        self.assertEquals([], tree.get_root_siblings("foo/bar/baz"))
        self.assertEquals(["src/java", "src/resources"], tree.get_root_siblings("src/java/org/pantsbuild/foo"))
        self.assertEquals(
            ["tests/java", "tests/resources"], tree.get_root_siblings("tests/resources/org/pantsbuild/foo")
        )
        self.assertEquals(
            ["examples/src/java", "examples/src/resources"],
            tree.get_root_siblings("examples/src/java/org/pantsbuild/foo"),
        )
        self.assertEquals(
            ["examples/tests/java", "examples/tests/resources"],
            tree.get_root_siblings("examples/tests/resources/org/pantsbuild/foo"),
        )
Exemplo n.º 6
0
 def test_mutable(self):
     tree = SourceRootTree()
     tree.add_root("mutable/foo", set([NotTestTarget, TestTarget]), mutable=True)
     tree.add_root("immutable/foo", set([NotTestTarget, TestTarget]), mutable=False)
     with self.assertRaises(SourceRootTree.DuplicateSourceRootError):
         # Can't add an immutable root to a mutable root
         tree.add_root("mutable/foo", set([AnotherTarget]))
     with self.assertRaises(SourceRootTree.DuplicateSourceRootError):
         # Can't add an mutable root to an immutable root
         tree.add_root("immutable/foo", set([AnotherTarget]), mutable=True)
     # But can add a mutable root to a mutable root
     tree.add_root("mutable/foo", set([AnotherTarget]), mutable=True)
     self.assertEquals(
         set([AnotherTarget, NotTestTarget, TestTarget]),
         set(tree.get_root_and_types("mutable/foo")[1]),
         msg="Failed for tree: {dump}".format(dump=tree._dump()),
     )
Exemplo n.º 7
0
    def test_source_root_tree(self):
        tree = SourceRootTree()
        self.assertEquals((None, None), tree.get_root_and_types(""))
        self.assertEquals((None, None), tree.get_root_and_types("tests/language"))
        self.assertEquals((None, None), tree.get_root_and_types("tests/language/foo"))
        self.assertEquals((None, None), tree.get_root_and_types("src/language"))
        self.assertEquals((None, None), tree.get_root_and_types("src"))

        tree.add_root("tests/language", set([NotTestTarget, TestTarget]))
        self.assertEquals(
            ("tests/language", OrderedSet([NotTestTarget, TestTarget])),
            tree.get_root_and_types("tests/language"),
            msg="Failed for tree: {dump}".format(dump=tree._dump()),
        )
        root, types = tree.get_root_and_types("tests/language/foo")
        self.assertEquals("tests/language", root, msg="Failed for tree: {dump}".format(dump=tree._dump()))
        self.assertEquals(
            set(types), set([NotTestTarget, TestTarget]), msg="Failed for tree: {dump}".format(dump=tree._dump())
        )
        self.assertEquals(
            (None, None), tree.get_root_and_types("src"), msg="Failed for tree: {dump}".format(dump=tree._dump())
        )
        self.assertEquals(
            (None, None), tree.get_root_and_types("src/bar"), msg="Failed for tree: {dump}".format(dump=tree._dump())
        )
        self.assertEquals(
            (None, None), tree.get_root_and_types("s"), msg="Failed for tree: {dump}".format(dump=tree._dump())
        )

        tree.add_root("src/language", set([NotTestTarget]))
        self.assertEquals(
            ("tests/language", OrderedSet([NotTestTarget, TestTarget])),
            tree.get_root_and_types("tests/language"),
            msg="Failed for tree: {dump}".format(dump=tree._dump()),
        )
        self.assertEquals(
            ("tests/language", OrderedSet([NotTestTarget, TestTarget])),
            tree.get_root_and_types("tests/language/foo"),
            msg="Failed for tree: {dump}".format(dump=tree._dump()),
        )
        self.assertEquals(
            ("src/language", OrderedSet([NotTestTarget])),
            tree.get_root_and_types("src/language"),
            msg="Failed for tree: {dump}".format(dump=tree._dump()),
        )
        self.assertEquals(
            ("src/language", OrderedSet([NotTestTarget])),
            tree.get_root_and_types("src/language/bar"),
            msg="Failed for tree: {dump}".format(dump=tree._dump()),
        )
        self.assertEquals(
            (None, None), tree.get_root_and_types("src"), msg="Failed for tree: {dump}".format(dump=tree._dump())
        )
        with self.assertRaises(SourceRootTree.DuplicateSourceRootError):
            tree.add_root("tests/language", set([NotTestTarget]))
        with self.assertRaises(SourceRootTree.NestedSourceRootError):
            tree.add_root("tests", set([NotTestTarget]))