~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_commit.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2007-11-03 03:26:27 UTC
  • mfrom: (2940.3.1 memorytransport)
  • Revision ID: pqm@pqm.ubuntu.com-20071103032627-fvl5prorhuns0t4o
MemoryTransport._abspath: fix handling of '..' and other strangeness

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2008 Canonical Ltd
 
1
# Copyright (C) 2005, 2006 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
19
19
 
20
20
import bzrlib
21
21
from bzrlib import (
22
 
    bzrdir,
23
22
    errors,
24
23
    lockdir,
25
24
    osutils,
96
95
        eq(rev.message, 'add hello')
97
96
 
98
97
        tree1 = b.repository.revision_tree(rh[0])
99
 
        tree1.lock_read()
100
98
        text = tree1.get_file_text(file_id)
101
 
        tree1.unlock()
102
 
        self.assertEqual('hello world', text)
 
99
        eq(text, 'hello world')
103
100
 
104
101
        tree2 = b.repository.revision_tree(rh[1])
105
 
        tree2.lock_read()
106
 
        text = tree2.get_file_text(file_id)
107
 
        tree2.unlock()
108
 
        self.assertEqual('version 2', text)
 
102
        eq(tree2.get_file_text(file_id), 'version 2')
109
103
 
110
104
    def test_delete_commit(self):
111
105
        """Test a commit with a deleted file"""
121
115
        tree = b.repository.revision_tree('rev2')
122
116
        self.assertFalse(tree.has_id('hello-id'))
123
117
 
124
 
    def test_partial_commit_move(self):
125
 
        """Test a partial commit where a file was renamed but not committed.
126
 
 
127
 
        https://bugs.launchpad.net/bzr/+bug/83039
128
 
        
129
 
        If not handled properly, commit will try to snapshot
130
 
        dialog.py with olive/ as a parent, while 
131
 
        olive/ has not been snapshotted yet.
132
 
        """
133
 
        wt = self.make_branch_and_tree('.')
134
 
        b = wt.branch
135
 
        self.build_tree(['annotate/', 'annotate/foo.py',
136
 
                         'olive/', 'olive/dialog.py'
137
 
                        ])
138
 
        wt.add(['annotate', 'olive', 'annotate/foo.py', 'olive/dialog.py'])
139
 
        wt.commit(message='add files')
140
 
        wt.rename_one("olive/dialog.py", "aaa")
141
 
        self.build_tree_contents([('annotate/foo.py', 'modified\n')])
142
 
        wt.commit('renamed hello', specific_files=["annotate"])
143
 
 
144
118
    def test_pointless_commit(self):
145
119
        """Commit refuses unless there are changes or it's forced."""
146
120
        wt = self.make_branch_and_tree('.')
194
168
        eq(b.revno(), 3)
195
169
 
196
170
        tree2 = b.repository.revision_tree('test@rev-2')
197
 
        tree2.lock_read()
198
 
        self.addCleanup(tree2.unlock)
199
171
        self.assertTrue(tree2.has_filename('hello'))
200
172
        self.assertEquals(tree2.get_file_text('hello-id'), 'hello')
201
173
        self.assertEquals(tree2.get_file_text('buongia-id'), 'new text')
202
174
        
203
175
        tree3 = b.repository.revision_tree('test@rev-3')
204
 
        tree3.lock_read()
205
 
        self.addCleanup(tree3.unlock)
206
176
        self.assertFalse(tree3.has_filename('hello'))
207
177
        self.assertEquals(tree3.get_file_text('buongia-id'), 'new text')
208
178
 
219
189
 
220
190
        eq = self.assertEquals
221
191
        tree1 = b.repository.revision_tree('test@rev-1')
222
 
        tree1.lock_read()
223
 
        self.addCleanup(tree1.unlock)
224
192
        eq(tree1.id2path('hello-id'), 'hello')
225
193
        eq(tree1.get_file_text('hello-id'), 'contents of hello\n')
226
194
        self.assertFalse(tree1.has_filename('fruity'))
229
197
        eq(ie.revision, 'test@rev-1')
230
198
 
231
199
        tree2 = b.repository.revision_tree('test@rev-2')
232
 
        tree2.lock_read()
233
 
        self.addCleanup(tree2.unlock)
234
200
        eq(tree2.id2path('hello-id'), 'fruity')
235
201
        eq(tree2.get_file_text('hello-id'), 'contents of hello\n')
236
202
        self.check_inventory_shape(tree2.inventory, ['fruity'])
464
430
        bound = master.sprout('bound')
465
431
        wt = bound.open_workingtree()
466
432
        wt.branch.set_bound_location(os.path.realpath('master'))
 
433
 
 
434
        orig_default = lockdir._DEFAULT_TIMEOUT_SECONDS
467
435
        master_branch.lock_write()
468
436
        try:
 
437
            lockdir._DEFAULT_TIMEOUT_SECONDS = 1
469
438
            self.assertRaises(LockContention, wt.commit, 'silly')
470
439
        finally:
 
440
            lockdir._DEFAULT_TIMEOUT_SECONDS = orig_default
471
441
            master_branch.unlock()
472
442
 
473
443
    def test_commit_bound_merge(self):
757
727
        rev = tree.branch.repository.get_revision(rev_id)
758
728
        self.assertEqual('John Doe <jdoe@example.com>',
759
729
                         rev.properties['author'])
760
 
 
761
 
    def test_commit_with_checkout_and_branch_sharing_repo(self):
762
 
        repo = self.make_repository('repo', shared=True)
763
 
        # make_branch_and_tree ignores shared repos
764
 
        branch = bzrdir.BzrDir.create_branch_convenience('repo/branch')
765
 
        tree2 = branch.create_checkout('repo/tree2')
766
 
        tree2.commit('message', rev_id='rev1')
767
 
        self.assertTrue(tree2.branch.repository.has_revision('rev1'))