14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
20
from cStringIO import StringIO
22
from bzrlib.tests import TestCase, TestCaseWithTransport
22
from bzrlib.selftest import TestCase, TestCaseInTempDir
23
23
from bzrlib.branch import Branch
24
from bzrlib.revision import is_ancestor
27
class TestAncestry(TestCaseWithTransport):
26
class TestAncestry(TestCaseInTempDir):
29
27
def test_straightline_ancestry(self):
30
28
"""Test ancestry file when just committing."""
31
wt = self.make_branch_and_tree('.')
34
wt.commit(message='one',
36
rev_id='tester@foo--1')
38
wt.commit(message='two',
40
rev_id='tester@foo--2')
42
ancs = b.repository.get_ancestry('tester@foo--2')
43
self.assertEqual([None, 'tester@foo--1', 'tester@foo--2'], ancs)
44
self.assertEqual([None, 'tester@foo--1'],
45
b.repository.get_ancestry('tester@foo--1'))
47
def test_none_is_always_an_ancestor(self):
48
wt = self.make_branch_and_tree('.')
50
# note this is tested before any commits are done.
51
self.assertEqual(True, is_ancestor(None, None, b))
52
wt.commit(message='one',
54
rev_id='tester@foo--1')
55
self.assertEqual(True, is_ancestor(None, None, b))
56
self.assertEqual(True, is_ancestor('tester@foo--1', None, b))
57
self.assertEqual(False, is_ancestor(None, 'tester@foo--1', b))
29
b = Branch('.', init=True)
31
b.commit(message='one',
33
rev_id='tester@foo--1')
35
b.commit(message='two',
37
rev_id='tester@foo--2')
39
ancs = b.get_ancestry('tester@foo--2')
60
43
# TODO: check that ancestry is updated to include indirectly merged revisions
47
if __name__ == '__main__':
49
sys.exit(unittest.main())