Пример #1
0
    def test_broken_message_worker_exception(self, mocker):
        connection = Connection(uuid.uuid4(), 'server', 445, True)

        mock_transport = mocker.MagicMock()
        connection.transport = mock_transport
        connection.transport.recv.side_effect = Exception('test')
        connection._process_message_thread()

        with pytest.raises(Exception, match='test'):
            connection.send(SMB2Echo())

        with pytest.raises(Exception, match='test'):
            connection.receive(None)
Пример #2
0
    def test_message_worker_timeout(self, mocker):
        connection = Connection(uuid.uuid4(), 'server', 445, True)

        connection.session_table[1] = mocker.MagicMock()

        mock_send = mocker.MagicMock()
        connection.send = mock_send

        mock_transport = mocker.MagicMock()
        connection.transport = mock_transport
        connection.transport.recv.side_effect = (_TimeoutError, b'')

        # Not the best test but better than waiting 10 minutes for the socket to timeout.
        connection._process_message_thread()

        assert mock_send.call_count == 1
        assert isinstance(mock_send.call_args[0][0], SMB2Echo)
        assert mock_send.call_args[1] == {'sid': 1}