1
# Copyright (C) 2006, 2008-2012, 2016 Canonical Ltd
1
# Copyright (C) 2006 Canonical Ltd
2
2
# Authors: Robert Collins <robert.collins@canonical.com>
4
4
# This program is free software; you can redistribute it and/or modify
14
14
# You should have received a copy of the GNU General Public License
15
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
18
"""Tests for the RevisionTree class."""
23
from breezy.tree import FileTimestampUnavailable
24
from breezy.tests import TestCaseWithTransport
24
from bzrlib.tests import TestCaseWithTransport
25
from bzrlib.tree import RevisionTree
27
28
class TestTreeWithCommits(TestCaseWithTransport):
50
51
self.t.branch.repository.revision_tree(revid_2).get_parent_ids())
51
52
# TODO commit a merge and check it is reported correctly.
53
# the parents for a revision_tree(NULL_REVISION) are []:
54
# the parents for a revision_tree(None) are []:
54
55
self.assertEqual([],
55
self.t.branch.repository.revision_tree(
56
revision.NULL_REVISION).get_parent_ids())
56
self.t.branch.repository.revision_tree(None).get_parent_ids())
58
58
def test_empty_no_root(self):
59
59
null_tree = self.t.branch.repository.revision_tree(
60
60
revision.NULL_REVISION)
61
self.assertIs(None, null_tree.path2id(''))
63
def test_get_file_revision_root(self):
64
self.assertEqual(self.rev_id, self.rev_tree.get_file_revision(u''))
66
def test_get_file_revision(self):
67
self.build_tree_contents([('a', b'initial')])
69
revid1 = self.t.commit('add a')
70
revid2 = self.t.commit('another change', allow_pointless=True)
71
tree = self.t.branch.repository.revision_tree(revid2)
72
self.assertEqual(revid1,
73
tree.get_file_revision('a'))
75
def test_get_file_mtime_ghost(self):
76
path = next(iter(self.rev_tree.all_versioned_paths()))
77
self.rev_tree.root_inventory.get_entry(
78
self.rev_tree.path2id(path)).revision = b'ghostrev'
79
self.assertRaises(FileTimestampUnavailable,
80
self.rev_tree.get_file_mtime, path)
61
self.assertIs(None, null_tree.inventory.root)