/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_commit.py

  • Committer: Vincent Ladeuil
  • Date: 2011-08-16 13:12:40 UTC
  • mfrom: (6071 +trunk)
  • mto: This revision was merged to the branch mainline in revision 6076.
  • Revision ID: v.ladeuil+lp@free.fr-20110816131240-gcyn9cik86dxwgz3
Merge into trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
from bzrlib.bzrdir import BzrDirMetaFormat1
27
27
from bzrlib.commit import Commit, NullCommitReporter
28
28
from bzrlib.config import BranchConfig
29
 
from bzrlib.errors import (PointlessCommit, BzrError, SigningFailed,
30
 
                           LockContention)
31
 
from bzrlib.tests import SymlinkFeature, TestCaseWithTransport
 
29
from bzrlib.errors import (
 
30
    PointlessCommit,
 
31
    BzrError,
 
32
    SigningFailed,
 
33
    LockContention,
 
34
    )
 
35
from bzrlib.tests import (
 
36
    TestCaseWithTransport,
 
37
    test_foreign,
 
38
    )
 
39
from bzrlib.tests.features import (
 
40
    SymlinkFeature,
 
41
    )
 
42
from bzrlib.tests.matchers import MatchesAncestry
32
43
 
33
44
 
34
45
# TODO: Test commit with some added, and added-but-missing files
103
114
        tree2.unlock()
104
115
        self.assertEqual('version 2', text)
105
116
 
 
117
    def test_commit_lossy_native(self):
 
118
        """Attempt a lossy commit to a native branch."""
 
119
        wt = self.make_branch_and_tree('.')
 
120
        b = wt.branch
 
121
        file('hello', 'w').write('hello world')
 
122
        wt.add('hello')
 
123
        revid = wt.commit(message='add hello', rev_id='revid', lossy=True)
 
124
        self.assertEquals('revid', revid)
 
125
 
 
126
    def test_commit_lossy_foreign(self):
 
127
        """Attempt a lossy commit to a foreign branch."""
 
128
        test_foreign.register_dummy_foreign_for_test(self)
 
129
        wt = self.make_branch_and_tree('.',
 
130
            format=test_foreign.DummyForeignVcsDirFormat())
 
131
        b = wt.branch
 
132
        file('hello', 'w').write('hello world')
 
133
        wt.add('hello')
 
134
        revid = wt.commit(message='add hello', lossy=True,
 
135
            timestamp=1302659388, timezone=0)
 
136
        self.assertEquals('dummy-v1:1302659388.0-0-UNKNOWN', revid)
 
137
 
 
138
    def test_commit_bound_lossy_foreign(self):
 
139
        """Attempt a lossy commit to a bzr branch bound to a foreign branch."""
 
140
        test_foreign.register_dummy_foreign_for_test(self)
 
141
        foreign_branch = self.make_branch('foreign',
 
142
            format=test_foreign.DummyForeignVcsDirFormat())
 
143
        wt = foreign_branch.create_checkout("local")
 
144
        b = wt.branch
 
145
        file('local/hello', 'w').write('hello world')
 
146
        wt.add('hello')
 
147
        revid = wt.commit(message='add hello', lossy=True,
 
148
            timestamp=1302659388, timezone=0)
 
149
        self.assertEquals('dummy-v1:1302659388.0-0-0', revid)
 
150
        self.assertEquals('dummy-v1:1302659388.0-0-0',
 
151
            foreign_branch.last_revision())
 
152
        self.assertEquals('dummy-v1:1302659388.0-0-0',
 
153
            wt.branch.last_revision())
 
154
 
106
155
    def test_missing_commit(self):
107
156
        """Test a commit with a missing file"""
108
157
        wt = self.make_branch_and_tree('.')
220
269
        eq(tree1.id2path('hello-id'), 'hello')
221
270
        eq(tree1.get_file_text('hello-id'), 'contents of hello\n')
222
271
        self.assertFalse(tree1.has_filename('fruity'))
223
 
        self.check_inventory_shape(tree1.inventory, ['hello'])
224
 
        ie = tree1.inventory['hello-id']
225
 
        eq(ie.revision, 'test@rev-1')
 
272
        self.check_tree_shape(tree1, ['hello'])
 
273
        eq(tree1.get_file_revision('hello-id'), 'test@rev-1')
226
274
 
227
275
        tree2 = b.repository.revision_tree('test@rev-2')
228
276
        tree2.lock_read()
229
277
        self.addCleanup(tree2.unlock)
230
278
        eq(tree2.id2path('hello-id'), 'fruity')
231
279
        eq(tree2.get_file_text('hello-id'), 'contents of hello\n')
232
 
        self.check_inventory_shape(tree2.inventory, ['fruity'])
233
 
        ie = tree2.inventory['hello-id']
234
 
        eq(ie.revision, 'test@rev-2')
 
280
        self.check_tree_shape(tree2, ['fruity'])
 
281
        eq(tree2.get_file_revision('hello-id'), 'test@rev-2')
235
282
 
236
283
    def test_reused_rev_id(self):
237
284
        """Test that a revision id cannot be reused in a branch"""
258
305
        wt.commit('two', rev_id=r2, allow_pointless=False)
259
306
        wt.lock_read()
260
307
        try:
261
 
            self.check_inventory_shape(wt.read_working_inventory(),
262
 
                                       ['a/', 'a/hello', 'b/'])
 
308
            self.check_tree_shape(wt, ['a/', 'a/hello', 'b/'])
263
309
        finally:
264
310
            wt.unlock()
265
311
 
268
314
        wt.commit('three', rev_id=r3, allow_pointless=False)
269
315
        wt.lock_read()
270
316
        try:
271
 
            self.check_inventory_shape(wt.read_working_inventory(),
 
317
            self.check_tree_shape(wt,
272
318
                                       ['a/', 'a/hello', 'a/b/'])
273
 
            self.check_inventory_shape(b.repository.get_inventory(r3),
 
319
            self.check_tree_shape(b.repository.revision_tree(r3),
274
320
                                       ['a/', 'a/hello', 'a/b/'])
275
321
        finally:
276
322
            wt.unlock()
280
326
        wt.commit('four', rev_id=r4, allow_pointless=False)
281
327
        wt.lock_read()
282
328
        try:
283
 
            self.check_inventory_shape(wt.read_working_inventory(),
284
 
                                       ['a/', 'a/b/hello', 'a/b/'])
 
329
            self.check_tree_shape(wt, ['a/', 'a/b/hello', 'a/b/'])
285
330
        finally:
286
331
            wt.unlock()
287
332
 
319
364
        eq = self.assertEquals
320
365
        eq(b.revision_history(), rev_ids)
321
366
        for i in range(4):
322
 
            anc = b.repository.get_ancestry(rev_ids[i])
323
 
            eq(anc, [None] + rev_ids[:i+1])
 
367
            self.assertThat(rev_ids[:i+1],
 
368
                MatchesAncestry(b.repository, rev_ids[i]))
324
369
 
325
370
    def test_commit_new_subdir_child_selective(self):
326
371
        wt = self.make_branch_and_tree('.')
349
394
    def test_strict_commit_without_unknowns(self):
350
395
        """Try and commit with no unknown files and strict = True,
351
396
        should work."""
352
 
        from bzrlib.errors import StrictCommitFailed
353
397
        wt = self.make_branch_and_tree('.')
354
398
        b = wt.branch
355
399
        file('hello', 'w').write('hello world')
381
425
        wt = self.make_branch_and_tree('.')
382
426
        branch = wt.branch
383
427
        wt.commit("base", allow_pointless=True, rev_id='A')
384
 
        self.failIf(branch.repository.has_signature_for_revision_id('A'))
 
428
        self.assertFalse(branch.repository.has_signature_for_revision_id('A'))
385
429
        try:
386
430
            from bzrlib.testament import Testament
387
431
            # monkey patch gpg signing mechanism
405
449
        wt = self.make_branch_and_tree('.')
406
450
        branch = wt.branch
407
451
        wt.commit("base", allow_pointless=True, rev_id='A')
408
 
        self.failIf(branch.repository.has_signature_for_revision_id('A'))
 
452
        self.assertFalse(branch.repository.has_signature_for_revision_id('A'))
409
453
        try:
410
 
            from bzrlib.testament import Testament
411
454
            # monkey patch gpg signing mechanism
412
455
            bzrlib.gpg.GPGStrategy = bzrlib.gpg.DisabledGPGStrategy
413
456
            config = MustSignConfig(branch)
419
462
                              working_tree=wt)
420
463
            branch = Branch.open(self.get_url('.'))
421
464
            self.assertEqual(branch.revision_history(), ['A'])
422
 
            self.failIf(branch.repository.has_revision('B'))
 
465
            self.assertFalse(branch.repository.has_revision('B'))
423
466
        finally:
424
467
            bzrlib.gpg.GPGStrategy = oldstrategy
425
468