tests/test-rust-revlog.py
changeset 52786 4e34e8fd46d4
parent 52783 07740bd86fd9
child 52787 e5f89bd1a5ee
equal deleted inserted replaced
52785:71ebe880f24a 52786:4e34e8fd46d4
     2 
     2 
     3 from mercurial.node import (
     3 from mercurial.node import (
     4     bin as node_bin,
     4     bin as node_bin,
     5     hex,
     5     hex,
     6 )
     6 )
       
     7 from mercurial import error
     7 
     8 
     8 try:
     9 try:
     9     from mercurial import rustext
    10     from mercurial import rustext
    10 
    11 
    11     rustext.__name__  # trigger immediate actual import
    12     rustext.__name__  # trigger immediate actual import
    23 class RustInnerRevlogTestMixin:
    24 class RustInnerRevlogTestMixin:
    24     """Common tests for both Rust Python bindings."""
    25     """Common tests for both Rust Python bindings."""
    25 
    26 
    26     node_hex0 = b'd1f4bbb0befc13bd8cd39d0fcdd93b8c078c4a2f'
    27     node_hex0 = b'd1f4bbb0befc13bd8cd39d0fcdd93b8c078c4a2f'
    27     node0 = node_bin(node_hex0)
    28     node0 = node_bin(node_hex0)
       
    29     bogus_node_hex = b'cafe' * 10
       
    30     bogus_node = node_bin(bogus_node_hex)
       
    31 
       
    32     def test_index_nodemap(self):
       
    33         idx = self.parserustindex()
       
    34         self.assertTrue(idx.has_node(self.node0))
       
    35         self.assertFalse(idx.has_node(self.bogus_node))
       
    36 
       
    37         self.assertEqual(idx.get_rev(self.node0), 0)
       
    38         self.assertEqual(idx.get_rev(self.node0), 0)
       
    39 
       
    40         self.assertEqual(idx.rev(self.node0), 0)
       
    41         with self.assertRaises(error.RevlogError) as exc_info:
       
    42             idx.rev(self.bogus_node)
       
    43         self.assertEqual(exc_info.exception.args, (None,))
       
    44 
       
    45         self.assertEqual(idx.partialmatch(self.node_hex0[:3]), self.node0)
       
    46         self.assertIsNone(idx.partialmatch(self.bogus_node_hex[:3]))
       
    47         self.assertEqual(idx.shortest(self.node0), 1)
    28 
    48 
    29 
    49 
    30 # Conditional skipping done by the base class
    50 # Conditional skipping done by the base class
    31 class RustInnerRevlogTest(
    51 class RustInnerRevlogTest(
    32     revlogtesting.RustRevlogBasedTestBase, RustInnerRevlogTestMixin
    52     revlogtesting.RustRevlogBasedTestBase, RustInnerRevlogTestMixin