unit tests
This commit is contained in:
@@ -21,5 +21,5 @@ from . import raw
|
|||||||
from . import zlib
|
from . import zlib
|
||||||
#from . import zrle
|
#from . import zrle
|
||||||
from . import tight
|
from . import tight
|
||||||
from . import hextile
|
#from . import hextile
|
||||||
from . import cursor
|
from . import cursor
|
||||||
|
|||||||
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