예제 #1
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"))
예제 #2
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]))
예제 #3
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()))