/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: 2010-03-21 21:39:33 UTC
  • mfrom: (5102 +trunk)
  • mto: This revision was merged to the branch mainline in revision 5143.
  • Revision ID: jelmer@samba.org-20100321213933-fexeh9zcoz8oaju2
merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2008, 2009 Canonical Ltd
 
1
# Copyright (C) 2008, 2009, 2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
43
43
        condition_isinstance(TestBTreeNodes))
44
44
    import bzrlib._btree_serializer_py as py_module
45
45
    scenarios = [('python', {'parse_btree': py_module})]
46
 
    if CompiledBtreeParserFeature.available():
47
 
        # Is there a way to do this that gets missing feature failures rather
48
 
        # than no indication to the user?
49
 
        import bzrlib._btree_serializer_pyx as c_module
50
 
        scenarios.append(('C', {'parse_btree': c_module}))
 
46
    if compiled_btreeparser_feature.available():
 
47
        scenarios.append(('C', {'parse_btree':
 
48
                                compiled_btreeparser_feature.module}))
51
49
    return multiply_tests(node_tests, scenarios, others)
52
50
 
53
51
 
54
 
class _CompiledBtreeParserFeature(tests.Feature):
55
 
    def _probe(self):
56
 
        try:
57
 
            import bzrlib._btree_serializer_pyx
58
 
        except ImportError:
59
 
            return False
60
 
        return True
61
 
 
62
 
    def feature_name(self):
63
 
        return 'bzrlib._btree_serializer_pyx'
64
 
 
65
 
CompiledBtreeParserFeature = _CompiledBtreeParserFeature()
 
52
compiled_btreeparser_feature = tests.ModuleAvailableFeature(
 
53
                                'bzrlib._btree_serializer_pyx')
66
54
 
67
55
 
68
56
class BTreeTestCase(TestCaseWithTransport):
71
59
 
72
60
    def setUp(self):
73
61
        TestCaseWithTransport.setUp(self)
74
 
        self._original_header = btree_index._RESERVED_HEADER_BYTES
75
 
        def restore():
76
 
            btree_index._RESERVED_HEADER_BYTES = self._original_header
77
 
        self.addCleanup(restore)
78
 
        btree_index._RESERVED_HEADER_BYTES = 100
 
62
        self.overrideAttr(btree_index, '_RESERVED_HEADER_BYTES', 100)
79
63
 
80
64
    def make_nodes(self, count, key_elements, reference_lists):
81
65
        """Generate count*key_elements sample nodes."""
115
99
 
116
100
    def shrink_page_size(self):
117
101
        """Shrink the default page size so that less fits in a page."""
118
 
        old_page_size = btree_index._PAGE_SIZE
119
 
        def cleanup():
120
 
            btree_index._PAGE_SIZE = old_page_size
121
 
        self.addCleanup(cleanup)
 
102
        self.overrideAttr(btree_index, '_PAGE_SIZE')
122
103
        btree_index._PAGE_SIZE = 2048
123
104
 
124
105
 
1169
1150
 
1170
1151
class TestBTreeNodes(BTreeTestCase):
1171
1152
 
1172
 
    def restore_parser(self):
1173
 
        btree_index._btree_serializer = self.saved_parser
1174
 
 
1175
1153
    def setUp(self):
1176
1154
        BTreeTestCase.setUp(self)
1177
 
        self.saved_parser = btree_index._btree_serializer
1178
 
        self.addCleanup(self.restore_parser)
1179
 
        btree_index._btree_serializer = self.parse_btree
 
1155
        self.overrideAttr(btree_index, '_btree_serializer', self.parse_btree)
1180
1156
 
1181
1157
    def test_LeafNode_1_0(self):
1182
1158
        node_bytes = ("type=leaf\n"
1293
1269
    def test_exists(self):
1294
1270
        # This is just to let the user know if they don't have the feature
1295
1271
        # available
1296
 
        self.requireFeature(CompiledBtreeParserFeature)
 
1272
        self.requireFeature(compiled_btreeparser_feature)
1297
1273
 
1298
1274
 
1299
1275
class TestMultiBisectRight(tests.TestCase):