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"))
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]))
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()))