~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_chk_map.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-05-21 13:36:51 UTC
  • mfrom: (5243.2.1 readdir_cleanup)
  • Revision ID: pqm@pqm.ubuntu.com-20100521133651-p62dndo2giy5ls21
(lifeless) Some cleanups to the readdir pyrex code for a little efficiency
 and to avoid compile warnings. (John A Meinel)

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""Tests for maps built on a CHK versionedfiles facility."""
18
18
 
 
19
from itertools import izip
 
20
 
19
21
from bzrlib import (
20
22
    chk_map,
21
23
    errors,
224
226
            "      ('ddd',) 'initial ddd content'\n",
225
227
            c_map._dump_tree())
226
228
 
227
 
    def test_root_only_aaa_ddd_16(self):
 
229
    def test_one_deep_map_16(self):
228
230
        c_map = self.make_root_only_aaa_ddd_map(
229
231
                search_key_func=chk_map._search_key_16)
230
232
        # We use 'aaa' and 'ddd' because they happen to map to 'F' when using
465
467
        # updated key.
466
468
        self.assertEqual(new_root, chkmap._root_node._key)
467
469
 
468
 
    def test_apply_delete_to_internal_node(self):
469
 
        # applying a delta should be convert an internal root node to a leaf
470
 
        # node if the delta shrinks the map enough.
471
 
        store = self.get_chk_bytes()
472
 
        chkmap = CHKMap(store, None)
473
 
        # Add three items: 2 small enough to fit in one node, and one huge to
474
 
        # force multiple nodes.
475
 
        chkmap._root_node.set_maximum_size(100)
476
 
        chkmap.map(('small',), 'value')
477
 
        chkmap.map(('little',), 'value')
478
 
        chkmap.map(('very-big',), 'x' * 100)
479
 
        # (Check that we have constructed the scenario we want to test)
480
 
        self.assertIsInstance(chkmap._root_node, InternalNode)
481
 
        # Delete the huge item so that the map fits in one node again.
482
 
        delta = [(('very-big',), None, None)]
483
 
        chkmap.apply_delta(delta)
484
 
        self.assertCanonicalForm(chkmap)
485
 
        self.assertIsInstance(chkmap._root_node, LeafNode)
486
 
 
487
470
    def test_apply_new_keys_must_be_new(self):
488
471
        # applying a delta (None, "a", "b") to a map with 'a' in it generates
489
472
        # an error.
1108
1091
        basis_get = basis._store.get_record_stream
1109
1092
        def get_record_stream(keys, order, fulltext):
1110
1093
            if ('sha1:1adf7c0d1b9140ab5f33bb64c6275fa78b1580b7',) in keys:
1111
 
                raise AssertionError("'aaa' pointer was followed %r" % keys)
 
1094
                self.fail("'aaa' pointer was followed %r" % keys)
1112
1095
            return basis_get(keys, order, fulltext)
1113
1096
        basis._store.get_record_stream = get_record_stream
1114
1097
        result = sorted(list(target.iter_changes(basis)))