unit tests
This commit is contained in:
67
test/test_vncserver.py
Normal file
67
test/test_vncserver.py
Normal file
@@ -0,0 +1,67 @@
|
||||
import unittest
|
||||
from unittest.mock import Mock, patch
|
||||
from pyvncs.server import VNCServer
|
||||
|
||||
class TestVNCServer(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.socket_mock = Mock()
|
||||
self.vnc_config_mock = Mock()
|
||||
self.vnc_config_mock.win_title = "Test Window Title"
|
||||
self.vnc_server = VNCServer(socket=self.socket_mock, password="test_password", auth_type=2, vnc_config=self.vnc_config_mock)
|
||||
|
||||
def test_constructor(self):
|
||||
self.assertEqual(self.vnc_server.password, "test_password")
|
||||
self.assertIsNotNone(self.vnc_server.socket)
|
||||
|
||||
def test_send_message(self):
|
||||
message = "Test message"
|
||||
encoded_message = bytes(message, 'iso8859-1')
|
||||
message_length = len(encoded_message)
|
||||
with patch('struct.pack') as mock_pack:
|
||||
mock_pack.return_value = b'' # Simulate the packed message
|
||||
self.vnc_server.send_message(message)
|
||||
mock_pack.assert_called() # Verificar que se llamó, pero no con argumentos específicos
|
||||
self.socket_mock.send.assert_called() # Verificar que se envió el mensaje
|
||||
|
||||
def test_get_buffer_timeout(self):
|
||||
self.socket_mock.recv.side_effect = TimeoutError
|
||||
result = self.vnc_server.get_buffer(30)
|
||||
self.assertIsNone(result)
|
||||
|
||||
def test_init(self):
|
||||
# Mock the responses for version handshake and security type handshake
|
||||
self.socket_mock.recv.side_effect = [
|
||||
b"RFB 003.008\n", # Client version response
|
||||
b"\x02" # Security type response (VNCAuth)
|
||||
]
|
||||
|
||||
# Mock ImageGrab.grab() called in server_init
|
||||
with patch('pyvncs.server.ImageGrab.grab') as mock_grab:
|
||||
mock_grab.return_value.size = (1024, 768)
|
||||
# Mock any other dependencies in server_init here if necessary
|
||||
|
||||
result = self.vnc_server.init()
|
||||
self.assertTrue(result)
|
||||
|
||||
def test_server_init(self):
|
||||
with patch('pyvncs.server.ImageGrab.grab') as mock_grab:
|
||||
mock_grab.return_value.size = (1024, 768)
|
||||
self.vnc_server.server_init()
|
||||
self.assertEqual(self.vnc_server.width, 1024)
|
||||
self.assertEqual(self.vnc_server.height, 768)
|
||||
|
||||
def test_handle_client_keyboard_event(self):
|
||||
# Simulate a keyboard event
|
||||
self.socket_mock.recv.side_effect = [
|
||||
b'\x04', # Indicating a keyboard event
|
||||
b'additional data for the keyboard event'
|
||||
]
|
||||
with patch('pyvncs.server.kbdctrl.KeyboardController.process_event') as mock_kbd_event:
|
||||
self.vnc_server.handle_client()
|
||||
mock_kbd_event.assert_called_with(b'additional data for the keyboard event')
|
||||
|
||||
# TODO: Agregar más pruebas según sea necesario
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user