[RFC] intertree-implementations
John Arbash Meinel
john at arbash-meinel.com
Wed Jul 26 21:36:25 BST 2006
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Robert Collins wrote:
> This is the first cut at InterTree - I've hooked it up to Tree.compare.
> From here I plan to expand the tests until all the parameters are
> present and minimally tested. At that point I intend to deprecate
> compare_trees as the public interface.
>
> I'm sending this in now for comments and feedback..
>
> Cheers,
> Rob
>
...
> - def get_tree_no_parents_no_content(self):
> - # make a working tree with the right shape
> - tree = self.make_branch_and_tree('.')
> + def get_tree_no_parents_no_content(self, empty_tree, converter=None):
> + """Make a tree with no parents and no contents from empty_tree.
> +
> + :param empty_tree: A working tree with no content and no parents to
> + modify.
> + """
> # convert that to the final shape
> - return self.workingtree_to_test_tree(tree)
> + if converter is None:
> + converter = self.workingtree_to_test_tree
> + return converter(empty_tree)
This kind of seems like an odd api. Where you have to pass in an empty
tree, in order to get an empty tree.
I understand you really want it because you want to use the converter
parameter.
>
>
> class TreeTestProviderAdapter(WorkingTreeTestProviderAdapter):
>
> === modified file 'bzrlib/tests/tree_implementations/test_test_trees.py'
> --- bzrlib/tests/tree_implementations/test_test_trees.py 2006-07-21 01:37:47 +0000
> +++ bzrlib/tests/tree_implementations/test_test_trees.py 2006-07-24 10:15:48 +0000
> @@ -23,7 +23,8 @@
> class TestTreeShapes(TestCaseWithTree):
>
> def test_empty_tree_no_parents(self):
> - tree = self.get_tree_no_parents_no_content()
> + tree = self.make_branch_and_tree('.')
> + tree = self.get_tree_no_parents_no_content(tree)
> self.assertEqual([], tree.get_parent_ids())
> self.assertEqual([], tree.conflicts())
> self.assertEqual([], list(tree.unknowns()))
But it leads to a bit of:
Give me an empty tree.
No really, I want an empty tree.
Otherwise +1 from me.
John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFEx9JJJdeBCYSNAAMRAp+4AKCVJgS1LYKgz7d1ENnxhxb3w3o6OACgvHTm
lwedxR5bjO+1+ZsEl3c4mRg=
=rIZx
-----END PGP SIGNATURE-----
More information about the bazaar
mailing list