~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_revisionspec.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-06-08 00:21:20 UTC
  • mfrom: (3453.2.11 fast-checkout2)
  • Revision ID: pqm@pqm.ubuntu.com-20080608002120-r3kcq0kxq24lhnak
Improve build_tree performance (igc, abentley)

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
    bzrdir,
24
24
    errors,
25
25
    repository,
26
 
    revision as _mod_revision,
27
26
    )
28
27
from bzrlib.tests import TestCase, TestCaseWithTransport
29
28
from bzrlib.revisionspec import (
74
73
                         ' %r != %r'
75
74
                         % (revision_spec, exp_revision_id, rev_info.rev_id))
76
75
 
77
 
    def assertInvalid(self, revision_spec, extra='',
78
 
                      invalid_as_revision_id=True):
 
76
    def assertInvalid(self, revision_spec, extra=''):
79
77
        try:
80
78
            self.get_in_history(revision_spec)
81
79
        except errors.InvalidRevisionSpec, e:
82
80
            self.assertEqual(revision_spec, e.spec)
83
81
            self.assertEqual(extra, e.extra)
84
82
        else:
85
 
            self.fail('Expected InvalidRevisionSpec to be raised for'
86
 
                      ' %r.in_history' % (revision_spec,))
87
 
        if invalid_as_revision_id:
88
 
            try:
89
 
                spec = RevisionSpec.from_string(revision_spec)
90
 
                spec.as_revision_id(self.tree.branch)
91
 
            except errors.InvalidRevisionSpec, e:
92
 
                self.assertEqual(revision_spec, e.spec)
93
 
                self.assertEqual(extra, e.extra)
94
 
            else:
95
 
                self.fail('Expected InvalidRevisionSpec to be raised for'
96
 
                          ' %r.as_revision_id' % (revision_spec,))
 
83
            self.fail('Expected InvalidRevisionSpec to be raised for %s'
 
84
                      % (revision_spec,))
97
85
 
98
86
    def assertAsRevisionId(self, revision_id, revision_spec):
99
87
        """Calling as_revision_id() should return the specified id."""
101
89
        self.assertEqual(revision_id,
102
90
                         spec.as_revision_id(self.tree.branch))
103
91
 
104
 
    def get_as_tree(self, revision_spec, tree=None):
105
 
        if tree is None:
106
 
            tree = self.tree
107
 
        spec = RevisionSpec.from_string(revision_spec)
108
 
        return spec.as_tree(tree.branch)
109
 
 
110
92
 
111
93
class RevisionSpecMatchOnTrap(RevisionSpec):
112
94
 
307
289
        self.assertAsRevisionId('r2', '-1')
308
290
        self.assertAsRevisionId('alt_r2', '1.1.1')
309
291
 
310
 
    def test_as_tree(self):
311
 
        tree = self.get_as_tree('0')
312
 
        self.assertEquals(_mod_revision.NULL_REVISION, tree.get_revision_id())
313
 
        tree = self.get_as_tree('1')
314
 
        self.assertEquals('r1', tree.get_revision_id())
315
 
        tree = self.get_as_tree('2')
316
 
        self.assertEquals('r2', tree.get_revision_id())
317
 
        tree = self.get_as_tree('-2')
318
 
        self.assertEquals('r1', tree.get_revision_id())
319
 
        tree = self.get_as_tree('-1')
320
 
        self.assertEquals('r2', tree.get_revision_id())
321
 
        tree = self.get_as_tree('1.1.1')
322
 
        self.assertEquals('alt_r2', tree.get_revision_id())
323
 
 
324
292
 
325
293
class TestRevisionSpec_revid(TestRevisionSpec):
326
294
    
331
299
        self.assertInHistoryIs(2, 'r2', 'revid:r2')
332
300
        
333
301
    def test_missing(self):
334
 
        self.assertInvalid('revid:r3', invalid_as_revision_id=False)
 
302
        self.assertInvalid('revid:r3')
335
303
 
336
304
    def test_merged(self):
337
305
        """We can reach revisions in the ancestry"""
340
308
    def test_not_here(self):
341
309
        self.tree2.commit('alt third', rev_id='alt_r3')
342
310
        # It exists in tree2, but not in tree
343
 
        self.assertInvalid('revid:alt_r3', invalid_as_revision_id=False)
 
311
        self.assertInvalid('revid:alt_r3')
344
312
 
345
313
    def test_in_repository(self):
346
314
        """We can get any revision id in the repository"""
585
553
        new_tree = self.make_branch_and_tree('new_tree')
586
554
        self.assertRaises(errors.NoCommits,
587
555
                          self.get_in_history, 'branch:new_tree')
588
 
        self.assertRaises(errors.NoCommits,
589
 
                          self.get_as_tree, 'branch:new_tree')
590
556
 
591
557
    def test_as_revision_id(self):
592
558
        self.assertAsRevisionId('alt_r2', 'branch:tree2')
593
559
 
594
 
    def test_as_tree(self):
595
 
        tree = self.get_as_tree('branch:tree', self.tree2)
596
 
        self.assertEquals('r2', tree.get_revision_id())
597
 
        self.assertFalse(self.tree2.branch.repository.has_revision('r2'))
598
 
 
599
560
 
600
561
class TestRevisionSpec_submit(TestRevisionSpec):
601
562