13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
17
"""Tests for MutableTree.
19
19
Most functionality of MutableTree is tested as part of WorkingTree.
28
class TestHooks(tests.TestCase):
22
from bzrlib.tests import TestCase
23
from bzrlib.mutabletree import MutableTree, MutableTreeHooks
25
class TestHooks(TestCase):
30
27
def test_constructor(self):
31
"""Check that creating a MutableTreeHooks instance has the right
28
"""Check that creating a MutableTreeHooks instance has the right
33
hooks = mutabletree.MutableTreeHooks()
34
self.assertTrue("start_commit" in hooks,
30
hooks = MutableTreeHooks()
31
self.assertTrue("start_commit" in hooks,
35
32
"start_commit not in %s" % hooks)
36
self.assertTrue("post_commit" in hooks,
37
"post_commit not in %s" % hooks)
39
34
def test_installed_hooks_are_MutableTreeHooks(self):
40
35
"""The installed hooks object should be a MutableTreeHooks."""
41
36
# the installed hooks are saved in self._preserved_hooks.
42
self.assertIsInstance(self._preserved_hooks[mutabletree.MutableTree][1],
43
mutabletree.MutableTreeHooks)
46
class TestHasChanges(tests.TestCaseWithTransport):
49
super(TestHasChanges, self).setUp()
50
self.tree = self.make_branch_and_tree('tree')
52
def test_with_uncommitted_changes(self):
53
self.build_tree(['tree/file'])
55
self.assertTrue(self.tree.has_changes())
57
def test_with_pending_merges(self):
58
self.tree.commit('first commit')
59
other_tree = self.tree.bzrdir.sprout('other').open_workingtree()
60
other_tree.commit('mergeable commit')
61
self.tree.merge_from_branch(other_tree.branch)
62
self.assertTrue(self.tree.has_changes())
37
self.assertIsInstance(self._preserved_hooks[MutableTree],