/ tests / legacy_mocket.py
legacy_mocket.py
 1  from unittest import mock
 2  
 3  SOCK_STREAM = 0
 4  
 5  set_interface = mock.Mock()
 6  interface = mock.MagicMock()
 7  getaddrinfo = mock.Mock()
 8  socket = mock.Mock()
 9  
10  
11  class Mocket:
12      def __init__(self, response):
13          self.settimeout = mock.Mock()
14          self.close = mock.Mock()
15          self.connect = mock.Mock()
16          self.send = mock.Mock(side_effect=self._send)
17          self.readline = mock.Mock(side_effect=self._readline)
18          self.recv = mock.Mock(side_effect=self._recv)
19          self.fail_next_send = False
20          self._response = response
21          self._position = 0
22  
23      def _send(self, data):
24          if self.fail_next_send:
25              self.fail_next_send = False
26              raise RuntimeError("Send failed")
27          return None
28  
29      def _readline(self):
30          i = self._response.find(b"\r\n", self._position)
31          r = self._response[self._position : i + 2]
32          self._position = i + 2
33          return r
34  
35      def _recv(self, count):
36          end = self._position + count
37          r = self._response[self._position : end]
38          self._position = end
39          print(r)
40          return r