def mock_matrix(monkeypatch, mock_raiden_service, retry_interval, retries_before_backoff): from raiden.network.transport.matrix.client import GMatrixClient from raiden.network.transport.matrix.utils import UserPresence from raiden.network.transport.matrix import transport as transport_module def make_client_monkey( handle_messages_callback, servers, *args, **kwargs ): # pylint: disable=unused-argument return GMatrixClient(handle_messages_callback, servers[0]) monkeypatch.setattr(User, "get_display_name", lambda _: "random_display_name") monkeypatch.setattr(transport_module, "make_client", make_client_monkey) def mock_get_room_ids_for_address( # pylint: disable=unused-argument klass, address: Address ) -> List[str]: return ["!roomID:server"] def mock_set_room_id_for_address( # pylint: disable=unused-argument self, address: Address, room_id: Optional[str] ): pass def mock_on_messages(messages): # pylint: disable=unused-argument for message in messages: assert message assert message.sender def mock_get_user_presence(self, user_id: str): return UserPresence.ONLINE config = MatrixTransportConfig( broadcast_rooms=[], retries_before_backoff=retries_before_backoff, retry_interval=retry_interval, server="http://none", server_name="none", available_servers=[], ) transport = MatrixTransport(config=config, environment=Environment.DEVELOPMENT) transport._raiden_service = mock_raiden_service transport._stop_event.clear() transport._address_mgr.add_userid_for_address(factories.HOP1, USERID1) transport._client.user_id = USERID0 monkeypatch.setattr( MatrixTransport, "_get_room_ids_for_address", mock_get_room_ids_for_address ) monkeypatch.setattr(MatrixTransport, "_set_room_id_for_address", mock_set_room_id_for_address) monkeypatch.setattr(transport._raiden_service, "on_messages", mock_on_messages) monkeypatch.setattr(GMatrixClient, "get_user_presence", mock_get_user_presence) monkeypatch.setattr(transport._client.api, "leave_room", lambda room_id: None) monkeypatch.setattr(transport._client, "sync_token", "already_synced") return transport
def mock_matrix( monkeypatch, retry_interval, retries_before_backoff, local_matrix_servers, private_rooms, ): from matrix_client.user import User monkeypatch.setattr(User, 'get_display_name', lambda _: 'random_display_name') def mock_get_user(klass, user: Union[User, str]) -> User: return User(None, USERID1) def mock_get_room_ids_for_address( klass, address: Address, filter_private: bool = None, ) -> List[str]: return ['!roomID:server'] def mock_set_room_id_for_address(self, address: Address, room_id: Optional[str]): pass def mock_receive_message(klass, message): # We are just unit testing the matrix transport receive so do nothing assert message def mock_receive_delivered(klass, delivered): # We are just unit testing the matrix transport receive so do nothing assert delivered config = dict( retry_interval=retry_interval, retries_before_backoff=retries_before_backoff, server=local_matrix_servers[0], server_name=local_matrix_servers[0].netloc, available_servers=[], discovery_room='discovery', private_rooms=private_rooms, ) transport = MatrixTransport(config) transport._raiden_service = MockRaidenService() transport._stop_event.clear() transport._address_to_userids[HOP1] = USERID1 monkeypatch.setattr(MatrixTransport, '_get_user', mock_get_user) monkeypatch.setattr( MatrixTransport, '_get_room_ids_for_address', mock_get_room_ids_for_address, ) monkeypatch.setattr(MatrixTransport, '_set_room_id_for_address', mock_set_room_id_for_address) monkeypatch.setattr(MatrixTransport, '_receive_message', mock_receive_message) return transport
def mock_matrix(monkeypatch, retry_interval, retries_before_backoff): from raiden.network.transport.matrix.client import User from raiden.network.transport.matrix import transport as transport_module monkeypatch.setattr(User, "get_display_name", lambda _: "random_display_name") monkeypatch.setattr(transport_module, "make_client", lambda url, *a, **kw: GMatrixClient(url[0])) def mock_get_user(klass, user: Union[User, str]) -> User: # pylint: disable=unused-argument return User(None, USERID1) def mock_get_room_ids_for_address( # pylint: disable=unused-argument klass, address: Address, filter_private: bool = None) -> List[str]: return ["!roomID:server"] def mock_set_room_id_for_address( # pylint: disable=unused-argument self, address: Address, room_id: Optional[str]): pass def mock_receive_message(klass, message): # pylint: disable=unused-argument # We are just unit testing the matrix transport receive so do nothing assert message assert message.sender config = dict( retry_interval=retry_interval, retries_before_backoff=retries_before_backoff, server="http://none", server_name="none", available_servers=[], global_rooms=[], private_rooms=False, ) transport = MatrixTransport(config) transport._raiden_service = MockRaidenService() transport._stop_event.clear() transport._address_mgr.add_userid_for_address(factories.HOP1, USERID1) transport._client.user_id = USERID0 monkeypatch.setattr(MatrixTransport, "_get_user", mock_get_user) monkeypatch.setattr(MatrixTransport, "_get_room_ids_for_address", mock_get_room_ids_for_address) monkeypatch.setattr(MatrixTransport, "_set_room_id_for_address", mock_set_room_id_for_address) monkeypatch.setattr(MatrixTransport, "_receive_message", mock_receive_message) return transport