/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_btree_index.py

  • Committer: Jelmer Vernooij
  • Date: 2009-10-27 21:54:26 UTC
  • mfrom: (4771 +trunk)
  • mto: This revision was merged to the branch mainline in revision 4833.
  • Revision ID: jelmer@samba.org-20091027215426-72164bkd4mq9dsd4
merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
124
124
 
125
125
class TestBTreeBuilder(BTreeTestCase):
126
126
 
 
127
    def test_clear_cache(self):
 
128
        builder = btree_index.BTreeBuilder(reference_lists=0, key_elements=1)
 
129
        # This is a no-op, but we need the api to be consistent with other
 
130
        # BTreeGraphIndex apis.
 
131
        builder.clear_cache()
 
132
 
127
133
    def test_empty_1_0(self):
128
134
        builder = btree_index.BTreeBuilder(key_elements=1, reference_lists=0)
129
135
        # NamedTemporaryFile dies on builder.finish().read(). weird.
639
645
        size = trans.put_file('index', stream)
640
646
        return btree_index.BTreeGraphIndex(trans, 'index', size)
641
647
 
 
648
    def test_clear_cache(self):
 
649
        nodes = self.make_nodes(160, 2, 2)
 
650
        index = self.make_index(ref_lists=2, key_elements=2, nodes=nodes)
 
651
        self.assertEqual(1, len(list(index.iter_entries([nodes[30][0]]))))
 
652
        self.assertEqual([1, 4], index._row_lengths)
 
653
        self.assertIsNot(None, index._root_node)
 
654
        internal_node_pre_clear = index._internal_node_cache.keys()
 
655
        self.assertTrue(len(index._leaf_node_cache) > 0)
 
656
        index.clear_cache()
 
657
        # We don't touch _root_node or _internal_node_cache, both should be
 
658
        # small, and can save a round trip or two
 
659
        self.assertIsNot(None, index._root_node)
 
660
        # NOTE: We don't want to affect the _internal_node_cache, as we expect
 
661
        #       it will be small, and if we ever do touch this index again, it
 
662
        #       will save round-trips.  This assertion isn't very strong,
 
663
        #       becuase without a 3-level index, we don't have any internal
 
664
        #       nodes cached.
 
665
        self.assertEqual(internal_node_pre_clear,
 
666
                         index._internal_node_cache.keys())
 
667
        self.assertEqual(0, len(index._leaf_node_cache))
 
668
 
642
669
    def test_trivial_constructor(self):
643
670
        transport = get_transport('trace+' + self.get_url(''))
644
671
        index = btree_index.BTreeGraphIndex(transport, 'index', None)