~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_commit.py

  • Committer: Jelmer Vernooij
  • Date: 2010-04-30 11:03:59 UTC
  • mto: This revision was merged to the branch mainline in revision 5197.
  • Revision ID: jelmer@samba.org-20100430110359-ow3e3grh7sxy93pa
Remove more unused imports.

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
21
21
from bzrlib import (
22
22
    bzrdir,
23
23
    errors,
 
24
    lockdir,
 
25
    osutils,
 
26
    tests,
24
27
    )
25
28
from bzrlib.branch import Branch
26
 
from bzrlib.bzrdir import BzrDirMetaFormat1
 
29
from bzrlib.bzrdir import BzrDir, BzrDirMetaFormat1
27
30
from bzrlib.commit import Commit, NullCommitReporter
28
31
from bzrlib.config import BranchConfig
29
32
from bzrlib.errors import (PointlessCommit, BzrError, SigningFailed,
30
33
                           LockContention)
31
 
from bzrlib.tests import (
32
 
    SymlinkFeature,
33
 
    TestCaseWithTransport,
34
 
    test_foreign,
35
 
    )
 
34
from bzrlib.tests import SymlinkFeature, TestCaseWithTransport
 
35
from bzrlib.workingtree import WorkingTree
36
36
 
37
37
 
38
38
# TODO: Test commit with some added, and added-but-missing files
107
107
        tree2.unlock()
108
108
        self.assertEqual('version 2', text)
109
109
 
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
110
    def test_missing_commit(self):
149
111
        """Test a commit with a missing file"""
150
112
        wt = self.make_branch_and_tree('.')
262
224
        eq(tree1.id2path('hello-id'), 'hello')
263
225
        eq(tree1.get_file_text('hello-id'), 'contents of hello\n')
264
226
        self.assertFalse(tree1.has_filename('fruity'))
265
 
        self.check_tree_shape(tree1, ['hello'])
266
 
        eq(tree1.get_file_revision('hello-id'), 'test@rev-1')
 
227
        self.check_inventory_shape(tree1.inventory, ['hello'])
 
228
        ie = tree1.inventory['hello-id']
 
229
        eq(ie.revision, 'test@rev-1')
267
230
 
268
231
        tree2 = b.repository.revision_tree('test@rev-2')
269
232
        tree2.lock_read()
270
233
        self.addCleanup(tree2.unlock)
271
234
        eq(tree2.id2path('hello-id'), 'fruity')
272
235
        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')
 
236
        self.check_inventory_shape(tree2.inventory, ['fruity'])
 
237
        ie = tree2.inventory['hello-id']
 
238
        eq(ie.revision, 'test@rev-2')
275
239
 
276
240
    def test_reused_rev_id(self):
277
241
        """Test that a revision id cannot be reused in a branch"""
298
262
        wt.commit('two', rev_id=r2, allow_pointless=False)
299
263
        wt.lock_read()
300
264
        try:
301
 
            self.check_tree_shape(wt, ['a/', 'a/hello', 'b/'])
 
265
            self.check_inventory_shape(wt.read_working_inventory(),
 
266
                                       ['a/', 'a/hello', 'b/'])
302
267
        finally:
303
268
            wt.unlock()
304
269
 
307
272
        wt.commit('three', rev_id=r3, allow_pointless=False)
308
273
        wt.lock_read()
309
274
        try:
310
 
            self.check_tree_shape(wt,
 
275
            self.check_inventory_shape(wt.read_working_inventory(),
311
276
                                       ['a/', 'a/hello', 'a/b/'])
312
 
            self.check_tree_shape(b.repository.revision_tree(r3),
 
277
            self.check_inventory_shape(b.repository.get_inventory(r3),
313
278
                                       ['a/', 'a/hello', 'a/b/'])
314
279
        finally:
315
280
            wt.unlock()
319
284
        wt.commit('four', rev_id=r4, allow_pointless=False)
320
285
        wt.lock_read()
321
286
        try:
322
 
            self.check_tree_shape(wt, ['a/', 'a/b/hello', 'a/b/'])
 
287
            self.check_inventory_shape(wt.read_working_inventory(),
 
288
                                       ['a/', 'a/b/hello', 'a/b/'])
323
289
        finally:
324
290
            wt.unlock()
325
291
 
387
353
    def test_strict_commit_without_unknowns(self):
388
354
        """Try and commit with no unknown files and strict = True,
389
355
        should work."""
 
356
        from bzrlib.errors import StrictCommitFailed
390
357
        wt = self.make_branch_and_tree('.')
391
358
        b = wt.branch
392
359
        file('hello', 'w').write('hello world')
418
385
        wt = self.make_branch_and_tree('.')
419
386
        branch = wt.branch
420
387
        wt.commit("base", allow_pointless=True, rev_id='A')
421
 
        self.assertFalse(branch.repository.has_signature_for_revision_id('A'))
 
388
        self.failIf(branch.repository.has_signature_for_revision_id('A'))
422
389
        try:
423
390
            from bzrlib.testament import Testament
424
391
            # monkey patch gpg signing mechanism
442
409
        wt = self.make_branch_and_tree('.')
443
410
        branch = wt.branch
444
411
        wt.commit("base", allow_pointless=True, rev_id='A')
445
 
        self.assertFalse(branch.repository.has_signature_for_revision_id('A'))
 
412
        self.failIf(branch.repository.has_signature_for_revision_id('A'))
446
413
        try:
 
414
            from bzrlib.testament import Testament
447
415
            # monkey patch gpg signing mechanism
448
416
            bzrlib.gpg.GPGStrategy = bzrlib.gpg.DisabledGPGStrategy
449
417
            config = MustSignConfig(branch)
455
423
                              working_tree=wt)
456
424
            branch = Branch.open(self.get_url('.'))
457
425
            self.assertEqual(branch.revision_history(), ['A'])
458
 
            self.assertFalse(branch.repository.has_revision('B'))
 
426
            self.failIf(branch.repository.has_revision('B'))
459
427
        finally:
460
428
            bzrlib.gpg.GPGStrategy = oldstrategy
461
429