22
22
from bzrlib.selftest import TestCase, TestCaseInTempDir
23
23
from bzrlib.branch import Branch
24
from bzrlib.revision import is_ancestor
26
27
class TestAncestry(TestCaseInTempDir):
27
29
def test_straightline_ancestry(self):
28
30
"""Test ancestry file when just committing."""
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')
31
b = Branch.initialize('.')
34
wt.commit(message='one',
36
rev_id='tester@foo--1')
38
wt.commit(message='two',
40
rev_id='tester@foo--2')
39
42
ancs = b.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.get_ancestry('tester@foo--1'))
47
def test_none_is_always_an_ancestor(self):
48
b = Branch.initialize('.')
49
# note this is tested before any commits are done.
50
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))
43
60
# TODO: check that ancestry is updated to include indirectly merged revisions
47
if __name__ == '__main__':
49
sys.exit(unittest.main())