~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_changeset.py

  • Committer: Aaron Bentley
  • Date: 2006-05-15 11:51:02 UTC
  • mto: (1185.82.108 w-changeset)
  • mto: This revision was merged to the branch mainline in revision 1738.
  • Revision ID: aaron.bentley@utoronto.ca-20060515115102-1f88e5f55acddde8
Started work on testing install_revisions/handling empty changesets

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
from StringIO import StringIO
18
18
 
19
19
from bzrlib.tests import TestCaseInTempDir, TestCase
 
20
from bzrlib.bzrdir import BzrDir
20
21
from bzrlib.errors import BzrError
21
22
 
22
23
from bzrlib.diff import internal_diff
23
 
from bzrlib.changeset.read_changeset import ChangesetTree
 
24
from bzrlib.changeset.apply_changeset import install_changeset
 
25
from bzrlib.changeset.read_changeset import ChangesetTree, ChangesetReader
 
26
from bzrlib.changeset import serializer 
24
27
from bzrlib.workingtree import WorkingTree
25
28
 
26
29
class MockTree(object):
295
298
        from cStringIO import StringIO
296
299
        from bzrlib.changeset.gen_changeset import show_changeset
297
300
        from bzrlib.changeset.read_changeset import read_changeset
298
 
        from bzrlib.changeset.serializer import write
299
301
 
300
302
        cset_txt = StringIO()
301
 
        write(self.b1.repository, [rev_id], cset_txt)
 
303
        serializer.write(self.b1.repository, [rev_id], cset_txt)
302
304
        cset_txt.seek(0)
303
305
        self.assertEqual(cset_txt.readline(), '# Bazaar changeset v0.7\n')
304
306
        self.assertEqual(cset_txt.readline(), '#\n')
341
343
            import os
342
344
            if not os.path.exists(checkout_dir):
343
345
                os.mkdir(checkout_dir)
344
 
        self.tree1.bzrdir.clone(checkout_dir)
345
 
        return WorkingTree.open(checkout_dir)
 
346
        tree = BzrDir.create_standalone_workingtree(checkout_dir)
 
347
        s = StringIO()
 
348
        ancestors = [a for a in tree.branch.repository.get_ancestry(rev_id) if
 
349
                     a is not None]
 
350
        serializer.write(tree.branch.repository, ancestors, s)
 
351
        s.seek(0)
 
352
        install_changeset(tree.branch.repository, ChangesetReader(s))
 
353
        return tree
346
354
 
347
355
    def valid_apply_changeset(self, base_rev_id, cset,
348
356
            auto_commit=False, checkout_dir=None):
352
360
        from bzrlib.changeset.apply_changeset import _apply_cset
353
361
 
354
362
        to_tree = self.get_checkout(base_rev_id, checkout_dir=checkout_dir)
 
363
        repository = to_tree.branch.repository
 
364
        info = cset[0]
 
365
        for rev in info.real_revisions:
 
366
            self.assert_(not repository.has_revision(rev.revision_id),
 
367
                'Revision {%s} present before applying changeset' 
 
368
                % rev.revision_id)
355
369
        auto_committed = _apply_cset(to_tree, cset, auto_commit=auto_commit)
356
370
 
357
 
        info = cset[0]
358
 
        repository = to_tree.branch.repository
359
371
        for rev in info.real_revisions:
360
372
            self.assert_(repository.has_revision(rev.revision_id),
361
373
                'Missing revision {%s} after applying changeset' 
402
414
            #         to_tree.get_file(fileid).read())
403
415
 
404
416
    def test_changeset(self):
405
 
        from bzrlib.bzrdir import BzrDir
406
417
 
407
418
        import os, sys
408
419
        pjoin = os.path.join