##// END OF EJS Templates
mergestate: add accessors for local and other nodeid, not just contexts...
mergestate: add accessors for local and other nodeid, not just contexts The mergestate can contain invalid nodeids. In that case, `mergestate.localctx` or `mergestate.otherctx` will fail. This patch provides a way of accessing the nodeid without failing in such cases. Differential Revision: https://phab.mercurial-scm.org/D8040

File last commit:

r44605:5e84a96d default
r44696:b1069b36 default
Show More
test_buffer_util.py
153 lines | 5.0 KiB | text/x-python | PythonLexer
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 import struct
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 import unittest
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 import zstandard as zstd
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 from .common import TestCase
ss = struct.Struct("=QQ")
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 class TestBufferWithSegments(TestCase):
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 def test_arguments(self):
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 if not hasattr(zstd, "BufferWithSegments"):
self.skipTest("BufferWithSegments not available")
Gregory Szorc
zstandard: vendor python-zstandard 0.11...
r42237
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 with self.assertRaises(TypeError):
zstd.BufferWithSegments()
with self.assertRaises(TypeError):
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 zstd.BufferWithSegments(b"foo")
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
# Segments data should be a multiple of 16.
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 with self.assertRaisesRegex(
ValueError, "segments array size is not a multiple of 16"
):
zstd.BufferWithSegments(b"foo", b"\x00\x00")
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
def test_invalid_offset(self):
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 if not hasattr(zstd, "BufferWithSegments"):
self.skipTest("BufferWithSegments not available")
Gregory Szorc
zstandard: vendor python-zstandard 0.11...
r42237
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 with self.assertRaisesRegex(
ValueError, "offset within segments array references memory"
):
zstd.BufferWithSegments(b"foo", ss.pack(0, 4))
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
def test_invalid_getitem(self):
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 if not hasattr(zstd, "BufferWithSegments"):
self.skipTest("BufferWithSegments not available")
Gregory Szorc
zstandard: vendor python-zstandard 0.11...
r42237
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 b = zstd.BufferWithSegments(b"foo", ss.pack(0, 3))
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 with self.assertRaisesRegex(IndexError, "offset must be non-negative"):
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 test = b[-10]
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 with self.assertRaisesRegex(IndexError, "offset must be less than 1"):
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 test = b[1]
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 with self.assertRaisesRegex(IndexError, "offset must be less than 1"):
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 test = b[2]
def test_single(self):
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 if not hasattr(zstd, "BufferWithSegments"):
self.skipTest("BufferWithSegments not available")
Gregory Szorc
zstandard: vendor python-zstandard 0.11...
r42237
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 b = zstd.BufferWithSegments(b"foo", ss.pack(0, 3))
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 self.assertEqual(len(b), 1)
self.assertEqual(b.size, 3)
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 self.assertEqual(b.tobytes(), b"foo")
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
self.assertEqual(len(b[0]), 3)
self.assertEqual(b[0].offset, 0)
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 self.assertEqual(b[0].tobytes(), b"foo")
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
def test_multiple(self):
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 if not hasattr(zstd, "BufferWithSegments"):
self.skipTest("BufferWithSegments not available")
Gregory Szorc
zstandard: vendor python-zstandard 0.11...
r42237
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 b = zstd.BufferWithSegments(
Gregory Szorc
python-zstandard: blacken at 80 characters...
r44605 b"foofooxfooxy",
b"".join([ss.pack(0, 3), ss.pack(3, 4), ss.pack(7, 5)]),
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 )
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 self.assertEqual(len(b), 3)
self.assertEqual(b.size, 12)
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 self.assertEqual(b.tobytes(), b"foofooxfooxy")
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 self.assertEqual(b[0].tobytes(), b"foo")
self.assertEqual(b[1].tobytes(), b"foox")
self.assertEqual(b[2].tobytes(), b"fooxy")
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 class TestBufferWithSegmentsCollection(TestCase):
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 def test_empty_constructor(self):
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 if not hasattr(zstd, "BufferWithSegmentsCollection"):
self.skipTest("BufferWithSegmentsCollection not available")
Gregory Szorc
zstandard: vendor python-zstandard 0.11...
r42237
Gregory Szorc
python-zstandard: blacken at 80 characters...
r44605 with self.assertRaisesRegex(
ValueError, "must pass at least 1 argument"
):
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 zstd.BufferWithSegmentsCollection()
def test_argument_validation(self):
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 if not hasattr(zstd, "BufferWithSegmentsCollection"):
self.skipTest("BufferWithSegmentsCollection not available")
Gregory Szorc
zstandard: vendor python-zstandard 0.11...
r42237
Gregory Szorc
python-zstandard: blacken at 80 characters...
r44605 with self.assertRaisesRegex(
TypeError, "arguments must be BufferWithSegments"
):
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 zstd.BufferWithSegmentsCollection(None)
Gregory Szorc
python-zstandard: blacken at 80 characters...
r44605 with self.assertRaisesRegex(
TypeError, "arguments must be BufferWithSegments"
):
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 zstd.BufferWithSegmentsCollection(
zstd.BufferWithSegments(b"foo", ss.pack(0, 3)), None
)
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 with self.assertRaisesRegex(
ValueError, "ZstdBufferWithSegments cannot be empty"
):
zstd.BufferWithSegmentsCollection(zstd.BufferWithSegments(b"", b""))
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
def test_length(self):
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 if not hasattr(zstd, "BufferWithSegmentsCollection"):
self.skipTest("BufferWithSegmentsCollection not available")
Gregory Szorc
zstandard: vendor python-zstandard 0.11...
r42237
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 b1 = zstd.BufferWithSegments(b"foo", ss.pack(0, 3))
b2 = zstd.BufferWithSegments(
b"barbaz", b"".join([ss.pack(0, 3), ss.pack(3, 3)])
)
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
c = zstd.BufferWithSegmentsCollection(b1)
self.assertEqual(len(c), 1)
self.assertEqual(c.size(), 3)
c = zstd.BufferWithSegmentsCollection(b2)
self.assertEqual(len(c), 2)
self.assertEqual(c.size(), 6)
c = zstd.BufferWithSegmentsCollection(b1, b2)
self.assertEqual(len(c), 3)
self.assertEqual(c.size(), 9)
def test_getitem(self):
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 if not hasattr(zstd, "BufferWithSegmentsCollection"):
self.skipTest("BufferWithSegmentsCollection not available")
Gregory Szorc
zstandard: vendor python-zstandard 0.11...
r42237
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 b1 = zstd.BufferWithSegments(b"foo", ss.pack(0, 3))
b2 = zstd.BufferWithSegments(
b"barbaz", b"".join([ss.pack(0, 3), ss.pack(3, 3)])
)
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
c = zstd.BufferWithSegmentsCollection(b1, b2)
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 with self.assertRaisesRegex(IndexError, "offset must be less than 3"):
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 c[3]
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 with self.assertRaisesRegex(IndexError, "offset must be less than 3"):
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 c[4]
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 self.assertEqual(c[0].tobytes(), b"foo")
self.assertEqual(c[1].tobytes(), b"bar")
self.assertEqual(c[2].tobytes(), b"baz")