Files
driver/tests/test_buffered_reader.py
zeekay eb74c996a6 rename: this fork is ours — datastore_driver
Imports read `datastore_driver`, distribution `datastore-driver`, so nothing has to
import another product's name to talk to Hanzo Datastore.

Cut from upstream 0.2.9 — the version this stack already ran — rather than from
upstream HEAD, so it is a PURE RENAME with no behaviour change. Forking from
HEAD would have dragged versions along with the name (connect alone jumped
0.8.17 -> 1.6.0, a major), which is a different and much riskier change wearing
a rename's clothes.

X-ClickHouse-* headers are untouched: they are wire protocol the server sends
and expects, and a different token shape from the module name.
2026-07-26 11:01:28 -07:00

23 lines
755 B
Python

import socket
from unittest import TestCase, mock
from datastore_driver.bufferedreader import BufferedSocketReader
class BufferedReaderTestCase(TestCase):
def test_overflow_signed_int_string_size(self):
data = b'\xFF\xFE\xFC\xFE\xFE\xFE\xFE\xFE\x29\x80\x40\x00\x00\x01'
def recv_into(buf):
size = len(data)
buf[0:size] = data
return size
with mock.patch('socket.socket') as mock_socket:
mock_socket.return_value.recv_into.side_effect = recv_into
reader = BufferedSocketReader(socket.socket(), 1024)
# Trying to allocate huge amount of memory.
with self.assertRaises(MemoryError):
reader.read_strings(5, encoding='utf-8')