~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_commit.py

  • Committer: John Arbash Meinel
  • Date: 2011-01-11 18:10:55 UTC
  • mto: This revision was merged to the branch mainline in revision 5596.
  • Revision ID: john@arbash-meinel.com-20110111181055-d79p02kioxcg4f7l
Change tuned_gzip.GzipFile to be deprecated

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2011 Canonical Ltd
 
1
# Copyright (C) 2005-2010 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
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