~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_delta.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-12-10 01:19:33 UTC
  • mfrom: (3885.1.8 fifo_cache)
  • Revision ID: pqm@pqm.ubuntu.com-20081210011933-axdrxiq306imj2ty
(jam) Add a FIFOCache class, to allow max-size with less overhead,
        though lower hit rate.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
import os
18
 
from cStringIO import StringIO
 
18
from StringIO import StringIO
19
19
 
20
20
from bzrlib import (
21
21
    delta as _mod_delta,
22
 
    revision as _mod_revision,
23
22
    tests,
24
23
    )
25
24
 
188
187
                           exe_change=False)
189
188
 
190
189
 
191
 
class TestChangesFrom(tests.TestCaseWithTransport):
 
190
class TestChangesFrom (tests.TestCaseWithTransport):
192
191
 
193
192
    def show_string(self, delta, *args,  **kwargs):
194
193
        to_file = StringIO()
239
238
                           True, False)], delta.renamed)
240
239
        self.assertTrue(delta.has_changed())
241
240
        self.assertTrue(delta.touches_file_id('file-id'))
242
 
 
243
 
 
244
 
class TestDeltaShow(tests.TestCaseWithTransport):
245
 
 
246
 
    def _get_delta(self):
247
 
        # We build the delta from a real tree to avoid depending on internal
248
 
        # implementation details.
249
 
        wt = self.make_branch_and_tree('branch')
250
 
        self.build_tree_contents([('branch/f1', '1\n'),
251
 
                                  ('branch/f2', '2\n'),
252
 
                                  ('branch/f3', '3\n'),
253
 
                                  ('branch/f4', '4\n'),
254
 
                                  ('branch/dir/',),
255
 
                                 ])
256
 
        wt.add(['f1', 'f2', 'f3', 'f4', 'dir'],
257
 
               ['f1-id', 'f2-id', 'f3-id', 'f4-id', 'dir-id'])
258
 
        wt.commit('commit one', rev_id='1')
259
 
 
260
 
        long_status = """added:
261
 
  dir/
262
 
  f1
263
 
  f2
264
 
  f3
265
 
  f4
266
 
"""
267
 
        short_status = """A  dir/
268
 
A  f1
269
 
A  f2
270
 
A  f3
271
 
A  f4
272
 
"""
273
 
 
274
 
        repo = wt.branch.repository
275
 
        d = wt.changes_from(repo.revision_tree(_mod_revision.NULL_REVISION))
276
 
        return d, long_status, short_status
277
 
 
278
 
    def test_delta_show_short_status_no_filter(self):
279
 
        d, long_status, short_status = self._get_delta()
280
 
        out = StringIO()
281
 
        d.show(out, short_status=True)
282
 
        self.assertEquals(short_status, out.getvalue())
283
 
 
284
 
    def test_delta_show_long_status_no_filter(self):
285
 
        d, long_status, short_status = self._get_delta()
286
 
        out = StringIO()
287
 
        d.show(out, short_status=False)
288
 
        self.assertEquals(long_status, out.getvalue())
289
 
 
290
 
    def test_delta_show_no_filter(self):
291
 
        d, long_status, short_status = self._get_delta()
292
 
        out = StringIO()
293
 
        def not_a_filter(path, file_id):
294
 
            return True
295
 
        d.show(out, short_status=True, filter=not_a_filter)
296
 
        self.assertEquals(short_status, out.getvalue())
297
 
 
298
 
    def test_delta_show_short_status_single_file_filter(self):
299
 
        d, long_status, short_status = self._get_delta()
300
 
        out = StringIO()
301
 
        def only_f2(path, file_id):
302
 
            return path == 'f2'
303
 
        d.show(out, short_status=True, filter=only_f2)
304
 
        self.assertEquals("A  f2\n", out.getvalue())
305
 
 
306
 
    def test_delta_show_long_status_single_file_filter(self):
307
 
        d, long_status, short_status = self._get_delta()
308
 
        out = StringIO()
309
 
        def only_f2(path, file_id):
310
 
            return path == 'f2'
311
 
        d.show(out, short_status=False, filter=only_f2)
312
 
        self.assertEquals("added:\n  f2\n", out.getvalue())
313
 
 
314
 
    def test_delta_show_short_status_single_file_id_filter(self):
315
 
        d, long_status, short_status = self._get_delta()
316
 
        out = StringIO()
317
 
        def only_f2_id(path, file_id):
318
 
            return file_id == 'f2-id'
319
 
        d.show(out, short_status=True, filter=only_f2_id)
320
 
        self.assertEquals("A  f2\n", out.getvalue())
321