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.
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 |