~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_testament.py

Merge in bzrdir work to enable checkout improvements.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
from sha import sha
23
23
import sys
24
24
 
25
 
from bzrlib.tests import TestCaseInTempDir
 
25
from bzrlib.tests import TestCaseWithTransport
26
26
from bzrlib.branch import Branch
27
27
from bzrlib.testament import Testament
28
28
from bzrlib.trace import mutter
29
29
from bzrlib.osutils import has_symlinks
30
30
 
31
31
 
32
 
class TestamentTests(TestCaseInTempDir):
 
32
class TestamentTests(TestCaseWithTransport):
33
33
 
34
34
    def setUp(self):
35
35
        super(TestamentTests, self).setUp()
36
 
        b = self.b = Branch.initialize(u'.')
 
36
        self.wt = self.make_branch_and_tree('.')
 
37
        b = self.b = self.wt.branch
37
38
        b.nick = "test branch"
38
 
        b.working_tree().commit(message='initial null commit',
 
39
        self.wt.commit(message='initial null commit',
39
40
                 committer='test@user',
40
41
                 timestamp=1129025423, # 'Tue Oct 11 20:10:23 2005'
41
42
                 timezone=0,
43
44
        self.build_tree_contents([('hello', 'contents of hello file'),
44
45
                             ('src/', ),
45
46
                             ('src/foo.c', 'int main()\n{\n}\n')])
46
 
        b.working_tree().add(['hello', 'src', 'src/foo.c'],
 
47
        self.wt.add(['hello', 'src', 'src/foo.c'],
47
48
                             ['hello-id', 'src-id', 'foo.c-id'])
48
 
        b.working_tree().commit(message='add files and directories',
 
49
        self.wt.commit(message='add files and directories',
49
50
                 timestamp=1129025483,
50
51
                 timezone=36000,
51
52
                 rev_id='test@user-2',
53
54
 
54
55
    def test_null_testament(self):
55
56
        """Testament for a revision with no contents."""
56
 
        t = Testament.from_revision(self.b, 'test@user-1')
 
57
        t = Testament.from_revision(self.b.repository, 'test@user-1')
57
58
        ass = self.assertTrue
58
59
        eq = self.assertEqual
59
60
        ass(isinstance(t, Testament))
64
65
 
65
66
    def test_testment_text_form(self):
66
67
        """Conversion of testament to canonical text form."""
67
 
        t = Testament.from_revision(self.b, 'test@user-1')
 
68
        t = Testament.from_revision(self.b.repository, 'test@user-1')
68
69
        text_form = t.as_text()
69
70
        self.log('testament text form:\n' + text_form)
70
71
        self.assertEqual(text_form, REV_1_TESTAMENT)
71
72
 
72
73
    def test_testament_with_contents(self):
73
74
        """Testament containing a file and a directory."""
74
 
        t = Testament.from_revision(self.b, 'test@user-2')
 
75
        t = Testament.from_revision(self.b.repository, 'test@user-2')
75
76
        text_form = t.as_text()
76
77
        self.log('testament text form:\n' + text_form)
77
78
        self.assertEqualDiff(text_form, REV_2_TESTAMENT)
95
96
        if not has_symlinks():
96
97
            return
97
98
        os.symlink('wibble/linktarget', 'link')
98
 
        self.b.working_tree().add(['link'], ['link-id'])
99
 
        self.b.working_tree().commit(message='add symlink',
 
99
        self.wt.add(['link'], ['link-id'])
 
100
        self.wt.commit(message='add symlink',
100
101
                 timestamp=1129025493,
101
102
                 timezone=36000,
102
103
                 rev_id='test@user-3',
103
104
                 committer='test@user')
104
 
        t = Testament.from_revision(self.b, 'test@user-3')
 
105
        t = Testament.from_revision(self.b.repository, 'test@user-3')
105
106
        self.assertEqualDiff(t.as_text(), REV_3_TESTAMENT)
106
107
 
107
108
    def test_testament_revprops(self):
108
109
        """Testament to revision with extra properties"""
109
110
        props = dict(flavor='sour cherry\ncream cheese',
110
111
                     size='medium')
111
 
        self.b.working_tree().commit(message='revision with properties',
 
112
        self.wt.commit(message='revision with properties',
112
113
                      timestamp=1129025493,
113
114
                      timezone=36000,
114
115
                      rev_id='test@user-3',
115
116
                      committer='test@user',
116
117
                      revprops=props)
117
 
        t = Testament.from_revision(self.b, 'test@user-3')
 
118
        t = Testament.from_revision(self.b.repository, 'test@user-3')
118
119
        self.assertEqualDiff(t.as_text(), REV_PROPS_TESTAMENT)
119
120
 
120
121
    def test___init__(self):
121
 
        revision = self.b.get_revision('test@user-2')
122
 
        inventory = self.b.get_inventory('test@user-2')
 
122
        revision = self.b.repository.get_revision('test@user-2')
 
123
        inventory = self.b.repository.get_inventory('test@user-2')
123
124
        testament_1 = Testament(revision, inventory).as_short_text()
124
 
        testament_2 = Testament.from_revision(self.b, 
 
125
        testament_2 = Testament.from_revision(self.b.repository, 
125
126
                                              'test@user-2').as_short_text()
126
127
        self.assertEqual(testament_1, testament_2)
127
128