~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_commit.py

  • Committer: Gordon Tyler
  • Date: 2011-01-21 23:51:15 UTC
  • mto: This revision was merged to the branch mainline in revision 5632.
  • Revision ID: gordon@doxxx.net-20110121235115-9sdqamejot1h0481
Replace usage of format function from python 2.6 with our own very simple formatting function.

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
from bzrlib.config import BranchConfig
29
29
from bzrlib.errors import (PointlessCommit, BzrError, SigningFailed,
30
30
                           LockContention)
31
 
from bzrlib.tests import (
32
 
    SymlinkFeature,
33
 
    TestCaseWithTransport,
34
 
    test_foreign,
35
 
    )
 
31
from bzrlib.tests import SymlinkFeature, TestCaseWithTransport
36
32
 
37
33
 
38
34
# TODO: Test commit with some added, and added-but-missing files
107
103
        tree2.unlock()
108
104
        self.assertEqual('version 2', text)
109
105
 
110
 
    def test_commit_lossy_native(self):
111
 
        """Attempt a lossy commit to a native branch."""
112
 
        wt = self.make_branch_and_tree('.')
113
 
        b = wt.branch
114
 
        file('hello', 'w').write('hello world')
115
 
        wt.add('hello')
116
 
        revid = wt.commit(message='add hello', rev_id='revid', lossy=True)
117
 
        self.assertEquals('revid', revid)
118
 
 
119
 
    def test_commit_lossy_foreign(self):
120
 
        """Attempt a lossy commit to a foreign branch."""
121
 
        test_foreign.register_dummy_foreign_for_test(self)
122
 
        wt = self.make_branch_and_tree('.',
123
 
            format=test_foreign.DummyForeignVcsDirFormat())
124
 
        b = wt.branch
125
 
        file('hello', 'w').write('hello world')
126
 
        wt.add('hello')
127
 
        revid = wt.commit(message='add hello', lossy=True,
128
 
            timestamp=1302659388, timezone=0)
129
 
        self.assertEquals('dummy-v1:1302659388.0-0-UNKNOWN', revid)
130
 
 
131
 
    def test_commit_bound_lossy_foreign(self):
132
 
        """Attempt a lossy commit to a bzr branch bound to a foreign branch."""
133
 
        test_foreign.register_dummy_foreign_for_test(self)
134
 
        foreign_branch = self.make_branch('foreign',
135
 
            format=test_foreign.DummyForeignVcsDirFormat())
136
 
        wt = foreign_branch.create_checkout("local")
137
 
        b = wt.branch
138
 
        file('local/hello', 'w').write('hello world')
139
 
        wt.add('hello')
140
 
        revid = wt.commit(message='add hello', lossy=True,
141
 
            timestamp=1302659388, timezone=0)
142
 
        self.assertEquals('dummy-v1:1302659388.0-0-0', revid)
143
 
        self.assertEquals('dummy-v1:1302659388.0-0-0',
144
 
            foreign_branch.last_revision())
145
 
        self.assertEquals('dummy-v1:1302659388.0-0-0',
146
 
            wt.branch.last_revision())
147
 
 
148
106
    def test_missing_commit(self):
149
107
        """Test a commit with a missing file"""
150
108
        wt = self.make_branch_and_tree('.')
262
220
        eq(tree1.id2path('hello-id'), 'hello')
263
221
        eq(tree1.get_file_text('hello-id'), 'contents of hello\n')
264
222
        self.assertFalse(tree1.has_filename('fruity'))
265
 
        self.check_tree_shape(tree1, ['hello'])
266
 
        eq(tree1.get_file_revision('hello-id'), 'test@rev-1')
 
223
        self.check_inventory_shape(tree1.inventory, ['hello'])
 
224
        ie = tree1.inventory['hello-id']
 
225
        eq(ie.revision, 'test@rev-1')
267
226
 
268
227
        tree2 = b.repository.revision_tree('test@rev-2')
269
228
        tree2.lock_read()
270
229
        self.addCleanup(tree2.unlock)
271
230
        eq(tree2.id2path('hello-id'), 'fruity')
272
231
        eq(tree2.get_file_text('hello-id'), 'contents of hello\n')
273
 
        self.check_tree_shape(tree2, ['fruity'])
274
 
        eq(tree2.get_file_revision('hello-id'), 'test@rev-2')
 
232
        self.check_inventory_shape(tree2.inventory, ['fruity'])
 
233
        ie = tree2.inventory['hello-id']
 
234
        eq(ie.revision, 'test@rev-2')
275
235
 
276
236
    def test_reused_rev_id(self):
277
237
        """Test that a revision id cannot be reused in a branch"""
298
258
        wt.commit('two', rev_id=r2, allow_pointless=False)
299
259
        wt.lock_read()
300
260
        try:
301
 
            self.check_tree_shape(wt, ['a/', 'a/hello', 'b/'])
 
261
            self.check_inventory_shape(wt.read_working_inventory(),
 
262
                                       ['a/', 'a/hello', 'b/'])
302
263
        finally:
303
264
            wt.unlock()
304
265
 
307
268
        wt.commit('three', rev_id=r3, allow_pointless=False)
308
269
        wt.lock_read()
309
270
        try:
310
 
            self.check_tree_shape(wt,
 
271
            self.check_inventory_shape(wt.read_working_inventory(),
311
272
                                       ['a/', 'a/hello', 'a/b/'])
312
 
            self.check_tree_shape(b.repository.revision_tree(r3),
 
273
            self.check_inventory_shape(b.repository.get_inventory(r3),
313
274
                                       ['a/', 'a/hello', 'a/b/'])
314
275
        finally:
315
276
            wt.unlock()
319
280
        wt.commit('four', rev_id=r4, allow_pointless=False)
320
281
        wt.lock_read()
321
282
        try:
322
 
            self.check_tree_shape(wt, ['a/', 'a/b/hello', 'a/b/'])
 
283
            self.check_inventory_shape(wt.read_working_inventory(),
 
284
                                       ['a/', 'a/b/hello', 'a/b/'])
323
285
        finally:
324
286
            wt.unlock()
325
287
 
387
349
    def test_strict_commit_without_unknowns(self):
388
350
        """Try and commit with no unknown files and strict = True,
389
351
        should work."""
 
352
        from bzrlib.errors import StrictCommitFailed
390
353
        wt = self.make_branch_and_tree('.')
391
354
        b = wt.branch
392
355
        file('hello', 'w').write('hello world')
418
381
        wt = self.make_branch_and_tree('.')
419
382
        branch = wt.branch
420
383
        wt.commit("base", allow_pointless=True, rev_id='A')
421
 
        self.assertFalse(branch.repository.has_signature_for_revision_id('A'))
 
384
        self.failIf(branch.repository.has_signature_for_revision_id('A'))
422
385
        try:
423
386
            from bzrlib.testament import Testament
424
387
            # monkey patch gpg signing mechanism
442
405
        wt = self.make_branch_and_tree('.')
443
406
        branch = wt.branch
444
407
        wt.commit("base", allow_pointless=True, rev_id='A')
445
 
        self.assertFalse(branch.repository.has_signature_for_revision_id('A'))
 
408
        self.failIf(branch.repository.has_signature_for_revision_id('A'))
446
409
        try:
 
410
            from bzrlib.testament import Testament
447
411
            # monkey patch gpg signing mechanism
448
412
            bzrlib.gpg.GPGStrategy = bzrlib.gpg.DisabledGPGStrategy
449
413
            config = MustSignConfig(branch)
455
419
                              working_tree=wt)
456
420
            branch = Branch.open(self.get_url('.'))
457
421
            self.assertEqual(branch.revision_history(), ['A'])
458
 
            self.assertFalse(branch.repository.has_revision('B'))
 
422
            self.failIf(branch.repository.has_revision('B'))
459
423
        finally:
460
424
            bzrlib.gpg.GPGStrategy = oldstrategy
461
425