This base class maintain endpoints of two types:
Server-side endpoints to receive messages from clients. Address of this endpoint is described by (host_for_client, port_for_client).
Client-side endpoints to forward messages to server. Server must listen on (host_to_server, port_to_server).
Asynchronously concurrently passes data from client to server and from server to client, allowing intercepting the data, injecting delays and dropping connections.
 Inheritance diagram for pytest_userver.chaos.BaseGate:Public Member Functions | |
| None | __init__ (self, GateRoute route, EvLoop loop) | 
| 'BaseGate' | __aenter__ (self) | 
| None | __aexit__ (self, exc_type, exc_value, traceback) | 
| start (self) | |
| Open the socket and start accepting tasks.   | |
| None | start_accepting (self) | 
| Start accepting tasks.   | |
| None | stop_accepting (self) | 
| Stop accepting tasks without closing the accepting socket.   | |
| None | stop (self) | 
| Stop accepting tasks, close all the sockets.   | |
| None | sockets_close (self, *typing.Optional[int] count=None) | 
| Close all the connection going through the gate.   | |
| Address | get_sockname_for_clients (self) | 
| Returns the client socket address that the gate listens on.   | |
| str | info (self) | 
| Print info on open sockets.   | |
| None | set_to_server_interceptor (self, Interceptor interceptor) | 
| Replace existing interceptor of client to server data with a custom.   | |
| None | set_to_client_interceptor (self, Interceptor interceptor) | 
| Replace existing interceptor of server to client data with a custom.   | |
| None | to_server_pass (self) | 
| Pass data as is.   | |
| None | to_client_pass (self) | 
| Pass data as is.   | |
| None | to_server_noop (self) | 
| Do not read data, causing client to keep multiple data.   | |
| None | to_client_noop (self) | 
| Do not read data, causing server to keep multiple data.   | |
| None | to_server_drop (self) | 
| Read and discard data.   | |
| None | to_client_drop (self) | 
| Read and discard data.   | |
| None | to_server_delay (self, float delay) | 
| Delay data transmission.   | |
| None | to_client_delay (self, float delay) | 
| Delay data transmission.   | |
| None | to_server_close_on_data (self) | 
| Close on first bytes of data from client.   | |
| None | to_client_close_on_data (self) | 
| Close on first bytes of data from server.   | |
| None | to_server_corrupt_data (self) | 
| Corrupt data received from client.   | |
| None | to_client_corrupt_data (self) | 
| Corrupt data received from server.   | |
| None | to_server_limit_bps (self, float bytes_per_second) | 
| Limit bytes per second transmission by network from client.   | |
| None | to_client_limit_bps (self, float bytes_per_second) | 
| Limit bytes per second transmission by network from server.   | |
| None | to_server_limit_time (self, float timeout, float jitter) | 
| Limit connection lifetime on receive of first bytes from client.   | |
| None | to_client_limit_time (self, float timeout, float jitter) | 
| Limit connection lifetime on receive of first bytes from server.   | |
| None | to_server_smaller_parts (self, int max_size, *float sleep_per_packet=0) | 
| Pass data to server in smaller parts.   | |
| None | to_client_smaller_parts (self, int max_size, *float sleep_per_packet=0) | 
| Pass data to client in smaller parts.   | |
| None | to_server_concat_packets (self, int packet_size) | 
| Pass data in bigger parts.   | |
| None | to_client_concat_packets (self, int packet_size) | 
| Pass data in bigger parts.   | |
| None | to_server_limit_bytes (self, int bytes_limit) | 
Drop all connections each bytes_limit of data sent by network.   | |
| None | to_client_limit_bytes (self, int bytes_limit) | 
Drop all connections each bytes_limit of data sent by network.   | |
| None | to_server_substitute (self, str pattern, str repl) | 
| Apply regex substitution to data from client.   | |
| None | to_client_substitute (self, str pattern, str repl) | 
| Apply regex substitution to data from server.   | |
Protected Member Functions | |
| typing.List[Socket] | _create_accepting_sockets (self) | 
| None | _collect_garbage (self) | 
| None | _do_accept (self, Socket accept_sock) | 
| This task should wait for connections and create SocketPair.   | |
Protected Attributes | |
| _route | |
| _loop | |
| _NOT_IMPLEMENTED_MESSAGE | |
| _accept_tasks | |
| _sockets | |
| _to_server_intercept | |
| _to_client_intercept | |
Static Protected Attributes | |
| tuple | _NOT_IMPLEMENTED_MESSAGE | 
| None pytest_userver.chaos.BaseGate.__init__ | ( | self, | |
| GateRoute | route, | ||
| EvLoop | loop ) | 
| 'BaseGate' pytest_userver.chaos.BaseGate.__aenter__ | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.__aexit__ | ( | self, | |
| exc_type, | |||
| exc_value, | |||
| traceback ) | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
This task should wait for connections and create SocketPair.
Reimplemented in pytest_userver.chaos.TcpGate, and pytest_userver.chaos.UdpGate.
| Address pytest_userver.chaos.BaseGate.get_sockname_for_clients | ( | self | ) | 
| str pytest_userver.chaos.BaseGate.info | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.set_to_client_interceptor | ( | self, | |
| Interceptor | interceptor ) | 
| None pytest_userver.chaos.BaseGate.set_to_server_interceptor | ( | self, | |
| Interceptor | interceptor ) | 
| None pytest_userver.chaos.BaseGate.sockets_close | ( | self, | |
| *typing.Optional[int] | count = None ) | 
| pytest_userver.chaos.BaseGate.start | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.start_accepting | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.stop | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.stop_accepting | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.to_client_close_on_data | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.to_client_concat_packets | ( | self, | |
| int | packet_size ) | 
Pass data in bigger parts.
| packet_size | minimal size of the resulting packet | 
Reimplemented in pytest_userver.chaos.UdpGate.
| None pytest_userver.chaos.BaseGate.to_client_corrupt_data | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.to_client_delay | ( | self, | |
| float | delay ) | 
| None pytest_userver.chaos.BaseGate.to_client_drop | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.to_client_limit_bps | ( | self, | |
| float | bytes_per_second ) | 
| None pytest_userver.chaos.BaseGate.to_client_limit_bytes | ( | self, | |
| int | bytes_limit ) | 
| None pytest_userver.chaos.BaseGate.to_client_limit_time | ( | self, | |
| float | timeout, | ||
| float | jitter ) | 
| None pytest_userver.chaos.BaseGate.to_client_noop | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.to_client_pass | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.to_client_smaller_parts | ( | self, | |
| int | max_size, | ||
| *float | sleep_per_packet = 0 ) | 
Pass data to client in smaller parts.
| max_size | Max packet size to send to client | 
| sleep_per_packet | Optional sleep interval per packet, seconds | 
Reimplemented in pytest_userver.chaos.UdpGate.
| None pytest_userver.chaos.BaseGate.to_client_substitute | ( | self, | |
| str | pattern, | ||
| str | repl ) | 
| None pytest_userver.chaos.BaseGate.to_server_close_on_data | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.to_server_concat_packets | ( | self, | |
| int | packet_size ) | 
Pass data in bigger parts.
| packet_size | minimal size of the resulting packet | 
Reimplemented in pytest_userver.chaos.UdpGate.
| None pytest_userver.chaos.BaseGate.to_server_corrupt_data | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.to_server_delay | ( | self, | |
| float | delay ) | 
| None pytest_userver.chaos.BaseGate.to_server_drop | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.to_server_limit_bps | ( | self, | |
| float | bytes_per_second ) | 
| None pytest_userver.chaos.BaseGate.to_server_limit_bytes | ( | self, | |
| int | bytes_limit ) | 
| None pytest_userver.chaos.BaseGate.to_server_limit_time | ( | self, | |
| float | timeout, | ||
| float | jitter ) | 
| None pytest_userver.chaos.BaseGate.to_server_noop | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.to_server_pass | ( | self | ) | 
| None pytest_userver.chaos.BaseGate.to_server_smaller_parts | ( | self, | |
| int | max_size, | ||
| *float | sleep_per_packet = 0 ) | 
Pass data to server in smaller parts.
| max_size | Max packet size to send to server | 
| sleep_per_packet | Optional sleep interval per packet, seconds | 
Reimplemented in pytest_userver.chaos.UdpGate.
| None pytest_userver.chaos.BaseGate.to_server_substitute | ( | self, | |
| str | pattern, | ||
| str | repl ) | 
      
  | 
  staticprotected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected |