Files
secondo/apis/python1/api/unittest/support/test_secondoinputhandler.py

120 lines
5.0 KiB
Python
Raw Normal View History

2026-01-23 17:03:45 +08:00
import unittest
from mock import patch, Mock
import secondodb.api.secondoapi as api
import secondodb.api.support.secondoinputhandler as handler
from secondodb.api.support.secondolistexpr import ListExp
class TestInputHandler(unittest.TestCase):
@patch("secondodb.api.support.secondoinputhandler.read_string")
def test_build_list_expr_from_binary_bad_signature(self, mocked_read_string):
mocked_read_string.return_value = 'bad_string'
mocked_socket = Mock()
with self.assertRaises(api.InterfaceError):
handler.build_list_expr_from_binary(mocked_socket)
@patch("secondodb.api.support.secondoinputhandler.read_string")
@patch("secondodb.api.support.secondoinputhandler.read_short")
def test_build_list_expr_from_binary_bad_version(self, mocked_read_short, mocked_read_string):
mocked_read_string.return_value = 'bnl'
mocked_read_short.return_value = 9
mocked_socket = Mock()
with self.assertRaises(api.InterfaceError):
handler.build_list_expr_from_binary(mocked_socket)
@patch("secondodb.api.support.secondoinputhandler.read_int")
@patch("secondodb.api.support.secondoinputhandler.read_byte")
def test_read_binary_record_int(self, mocked_read_byte, mocked_read_int):
mocked_read_byte.return_value = [1]
mocked_read_int.return_value = 25
mocked_socket = Mock()
self.assertIsInstance(handler.read_binary_record(mocked_socket), ListExp)
@patch("secondodb.api.support.secondoinputhandler.read_real")
@patch("secondodb.api.support.secondoinputhandler.read_byte")
def test_read_binary_record_real(self, mocked_read_byte, mocked_read_real):
mocked_read_byte.return_value = [2]
mocked_read_real.return_value = 2.1244
mocked_socket = Mock()
self.assertIsInstance(handler.read_binary_record(mocked_socket), ListExp)
@patch("secondodb.api.support.secondoinputhandler.read_string")
@patch("secondodb.api.support.secondoinputhandler.read_int")
@patch("secondodb.api.support.secondoinputhandler.read_byte")
def test_read_binary_record_longstring(self, mocked_read_byte, mocked_read_int, mocked_read_string):
mocked_read_byte.return_value = [4]
mocked_read_int.return_value = 10
mocked_read_string.return_value = 'abcdeefghi'
mocked_socket = Mock()
self.assertIsInstance(handler.read_binary_record(mocked_socket), ListExp)
@patch("secondodb.api.support.secondoinputhandler.read_string")
@patch("secondodb.api.support.secondoinputhandler.read_int")
@patch("secondodb.api.support.secondoinputhandler.read_byte")
def test_read_binary_record_longsymbol(self, mocked_read_byte, mocked_read_int, mocked_read_string):
mocked_read_byte.return_value = [5]
mocked_read_int.return_value = 10
mocked_read_string.return_value = 'abcdeefghi'
mocked_socket = Mock()
self.assertIsInstance(handler.read_binary_record(mocked_socket), ListExp)
@patch("secondodb.api.support.secondoinputhandler.read_string")
@patch("secondodb.api.support.secondoinputhandler.read_int")
@patch("secondodb.api.support.secondoinputhandler.read_byte")
def test_read_binary_record_longtext(self, mocked_read_byte, mocked_read_int, mocked_read_string):
mocked_read_byte.return_value = [6]
mocked_read_int.return_value = 10
mocked_read_string.return_value = 'abcdeefghi'
mocked_socket = Mock()
self.assertIsInstance(handler.read_binary_record(mocked_socket), ListExp)
@patch("secondodb.api.support.secondoinputhandler.read_short")
@patch("secondodb.api.support.secondoinputhandler.read_byte")
def test_read_binary_record_int(self, mocked_read_byte, mocked_read_short):
mocked_read_byte.return_value = [12]
mocked_read_short.return_value = 25
mocked_socket = Mock()
self.assertIsInstance(handler.read_binary_record(mocked_socket), ListExp)
@patch("secondodb.api.support.secondoinputhandler.read_string")
@patch("secondodb.api.support.secondoinputhandler.read_short")
@patch("secondodb.api.support.secondoinputhandler.read_byte")
def test_read_binary_record_string(self, mocked_read_byte, mocked_read_short, mocked_read_string):
mocked_read_byte.return_value = [14]
mocked_read_short.return_value = 10
mocked_read_string.return_value = 'abcdeefghi'
mocked_socket = Mock()
self.assertIsInstance(handler.read_binary_record(mocked_socket), ListExp)
@patch("secondodb.api.support.secondoinputhandler.read_string")
@patch("secondodb.api.support.secondoinputhandler.read_short")
@patch("secondodb.api.support.secondoinputhandler.read_byte")
def test_read_binary_record_symbol(self, mocked_read_byte, mocked_read_short, mocked_read_string):
mocked_read_byte.return_value = [16]
mocked_read_short.return_value = 10
mocked_read_string.return_value = 'abcdeefghi'
mocked_socket = Mock()
self.assertIsInstance(handler.read_binary_record(mocked_socket), ListExp)