~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to tests/test__groupcompress_c.py

  • Committer: John Arbash Meinel
  • Date: 2008-07-24 14:59:42 UTC
  • mto: (0.17.18 trunk)
  • mto: This revision was merged to the branch mainline in revision 4280.
  • Revision ID: john@arbash-meinel.com-20080724145942-fhz7q6fpw8kde40q
Start writing tests directly for the compiled class

These tests are implementation tests, rather than interface tests. To make it
easier to assert that the internals are properly written.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright (C) 2008 Canonical Limited.
 
2
 
3
# This program is free software; you can redistribute it and/or modify
 
4
# it under the terms of the GNU General Public License version 2 as published
 
5
# by the Free Software Foundation.
 
6
 
7
# This program is distributed in the hope that it will be useful,
 
8
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
9
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
10
# GNU General Public License for more details.
 
11
 
12
# You should have received a copy of the GNU General Public License
 
13
# along with this program; if not, write to the Free Software
 
14
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 
15
 
16
 
 
17
"""Tests for the pyrex extension of groupcompress"""
 
18
 
 
19
from bzrlib import tests
 
20
 
 
21
 
 
22
class _CompiledGroupCompress(tests.Feature):
 
23
 
 
24
    def _probe(self):
 
25
        try:
 
26
            import bzrlib.plugins.groupcompress._groupcompress_c
 
27
        except ImportError:
 
28
            return False
 
29
        else:
 
30
            return True
 
31
 
 
32
    def feature_name(self):
 
33
        return 'bzrlib.plugins.groupcompress._groupcompress_c'
 
34
 
 
35
CompiledGroupCompress = _CompiledGroupCompress()
 
36
 
 
37
 
 
38
class TestCompiledEquivalenceTable(tests.TestCase):
 
39
    """Direct tests for the compiled Equivalence Table."""
 
40
 
 
41
    _tests_need_features = [CompiledGroupCompress]
 
42
 
 
43
    def setUp(self):
 
44
        super(TestCompiledEquivalenceTable, self).setUp()
 
45
        from bzrlib.plugins.groupcompress import _groupcompress_c
 
46
        self._gc_module = _groupcompress_c
 
47
 
 
48
    def test_minimum_hash_size(self):
 
49
        eq = self._gc_module.EquivalenceTable([])
 
50
        self.assertEqual(1024, eq._py_compute_minimum_hash_size(1000))
 
51
        self.assertEqual(1024, eq._py_compute_minimum_hash_size(1024))