summaryrefslogtreecommitdiff
path: root/bzrlib/tests/blackbox/test_split.py
diff options
context:
space:
mode:
Diffstat (limited to 'bzrlib/tests/blackbox/test_split.py')
-rw-r--r--bzrlib/tests/blackbox/test_split.py64
1 files changed, 64 insertions, 0 deletions
diff --git a/bzrlib/tests/blackbox/test_split.py b/bzrlib/tests/blackbox/test_split.py
new file mode 100644
index 0000000..22793ff
--- /dev/null
+++ b/bzrlib/tests/blackbox/test_split.py
@@ -0,0 +1,64 @@
+# Copyright (C) 2006 Canonical Ltd
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+from bzrlib import tests, workingtree
+from bzrlib.repofmt.knitrepo import RepositoryFormatKnit4
+from bzrlib.repofmt.knitpack_repo import RepositoryFormatKnitPack4
+
+
+
+class TestSplit(tests.TestCaseWithTransport):
+
+ def test_split(self):
+ self.build_tree(['a/', 'a/b/', 'a/b/c'])
+ wt = self.make_branch_and_tree('a', format='rich-root-pack')
+ wt.add(['b', 'b/c'])
+ wt.commit('rev1')
+ self.run_bzr('split a/b')
+ self.run_bzr_error(('.* is not versioned',), 'split q', working_dir='a')
+
+ def test_split_repo_failure(self):
+ repo = self.make_repository('branch', shared=True, format='knit')
+ a_branch = repo.bzrdir.create_branch()
+ self.build_tree(['a/', 'a/b/', 'a/b/c/', 'a/b/c/d'])
+ wt = a_branch.create_checkout('a', lightweight=True)
+ wt.add(['b', 'b/c', 'b/c/d'], ['b-id', 'c-id', 'd-id'])
+ wt.commit('added files')
+ self.run_bzr_error(('must upgrade your branch at .*a',), 'split a/b')
+
+ def test_split_tree_failure(self):
+ tree = self.make_branch_and_tree('tree', format='pack-0.92')
+ self.build_tree(['tree/subtree/'])
+ tree.add('subtree')
+ tree.commit('added subtree')
+ self.run_bzr_error(('must upgrade your branch at .*tree','rich roots'),
+ 'split tree/subtree')
+
+ def split_formats(self, format, repo_format):
+ tree = self.make_branch_and_tree('rich-root', format=format)
+ self.build_tree(['rich-root/a/'])
+ tree.add('a')
+ self.run_bzr(['split', 'rich-root/a'])
+ subtree = workingtree.WorkingTree.open('rich-root/a')
+ self.assertIsInstance(subtree.branch.repository._format,
+ repo_format)
+
+ def test_split_rich_root(self):
+ self.split_formats('rich-root', RepositoryFormatKnit4)
+
+ def test_split_rich_root_pack(self):
+ self.split_formats('rich-root-pack', RepositoryFormatKnitPack4)