~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_rename_map.py

  • Committer: John Arbash Meinel
  • Date: 2009-03-27 22:29:55 UTC
  • mto: (3735.39.2 clean)
  • mto: This revision was merged to the branch mainline in revision 4280.
  • Revision ID: john@arbash-meinel.com-20090327222955-utifmfm888zerixt
Implement apply_delta_to_source which doesn't have to malloc another string.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
import os
19
19
 
20
 
from bzrlib import trace
21
20
from bzrlib.rename_map import RenameMap
22
21
from bzrlib.tests import TestCaseWithTransport
23
22
 
150
149
        """When a directory has been moved, its children are preserved."""
151
150
        tree = self.make_branch_and_tree('tree')
152
151
        tree.lock_write()
153
 
        self.addCleanup(tree.unlock)
154
152
        self.build_tree_contents([('tree/foo/', ''),
155
153
                                  ('tree/foo/bar', 'bar'),
156
154
                                  ('tree/foo/empty', '')])
160
158
        os.rename('tree/foo', 'tree/baz')
161
159
        RenameMap.guess_renames(tree)
162
160
        self.assertEqual('baz/empty', tree.id2path('empty-id'))
163
 
 
164
 
    def test_guess_renames_dry_run(self):
165
 
        tree = self.make_branch_and_tree('tree')
166
 
        tree.lock_write()
167
 
        self.addCleanup(tree.unlock)
168
 
        self.build_tree(['tree/file'])
169
 
        tree.add('file', 'file-id')
170
 
        tree.commit('Added file')
171
 
        os.rename('tree/file', 'tree/file2')
172
 
        RenameMap.guess_renames(tree, dry_run=True)
173
 
        self.assertEqual('file', tree.id2path('file-id'))
174
 
 
175
 
    @staticmethod
176
 
    def captureNotes(cmd, *args, **kwargs):
177
 
        notes = []
178
 
        def my_note(fmt, *args):
179
 
            notes.append(fmt % args)
180
 
        old_note = trace.note
181
 
        trace.note = my_note
182
 
        try:
183
 
            result = cmd(*args, **kwargs)
184
 
        finally:
185
 
            trace.note = old_note
186
 
        return notes, result
187
 
 
188
 
    def test_guess_renames_output(self):
189
 
        """guess_renames emits output whether dry_run is True or False."""
190
 
        tree = self.make_branch_and_tree('tree')
191
 
        tree.lock_write()
192
 
        self.addCleanup(tree.unlock)
193
 
        self.build_tree(['tree/file'])
194
 
        tree.add('file', 'file-id')
195
 
        tree.commit('Added file')
196
 
        os.rename('tree/file', 'tree/file2')
197
 
        notes = self.captureNotes(RenameMap.guess_renames, tree,
198
 
                                  dry_run=True)[0]
199
 
        self.assertEqual('file => file2', ''.join(notes))
200
 
        notes = self.captureNotes(RenameMap.guess_renames, tree,
201
 
                                  dry_run=False)[0]
202
 
        self.assertEqual('file => file2', ''.join(notes))