diff --git a/raiden/tests/integration/test_matrix_transport.py b/raiden/tests/integration/test_matrix_transport.py index d22451623b9..5a0a0020460 100644 --- a/raiden/tests/integration/test_matrix_transport.py +++ b/raiden/tests/integration/test_matrix_transport.py @@ -1110,7 +1110,7 @@ def test_matrix_multi_user_roaming(matrix_transports): transport0.start_health_check(raiden_service1.address) transport3.start_health_check(raiden_service0.address) - assert ping_pong_message_success(transport0, transport3) is True + assert ping_pong_message_success(transport0, transport3) # Node two switches to second server transport3.stop() @@ -1119,7 +1119,7 @@ def test_matrix_multi_user_roaming(matrix_transports): transport4.start_health_check(raiden_service0.address) gevent.sleep(.5) - assert ping_pong_message_success(transport0, transport4) is True + assert ping_pong_message_success(transport0, transport4) # Node two switches to third server transport4.stop() @@ -1128,7 +1128,7 @@ def test_matrix_multi_user_roaming(matrix_transports): transport5.start_health_check(raiden_service0.address) gevent.sleep(.5) - assert ping_pong_message_success(transport0, transport5) is True + assert ping_pong_message_success(transport0, transport5) # Node one switches to second server, Node two back to first transport0.stop() transport5.stop() @@ -1137,7 +1137,7 @@ def test_matrix_multi_user_roaming(matrix_transports): transport3.start(raiden_service1, message_handler1, '') gevent.sleep(.5) - assert ping_pong_message_success(transport1, transport3) is True + assert ping_pong_message_success(transport1, transport3) # Node two joins on second server again transport3.stop() @@ -1145,7 +1145,7 @@ def test_matrix_multi_user_roaming(matrix_transports): transport4.start(raiden_service1, message_handler1, '') gevent.sleep(.5) - assert ping_pong_message_success(transport1, transport4) is True + assert ping_pong_message_success(transport1, transport4) # Node two switches to third server transport4.stop() @@ -1153,7 +1153,7 @@ def test_matrix_multi_user_roaming(matrix_transports): transport5.start(raiden_service1, message_handler1, '') gevent.sleep(.5) - assert ping_pong_message_success(transport1, transport5) is True + assert ping_pong_message_success(transport1, transport5) # Node one switches to third server, node two switches to first server transport1.stop() @@ -1164,7 +1164,7 @@ def test_matrix_multi_user_roaming(matrix_transports): transport3.start(raiden_service1, message_handler1, '') gevent.sleep(.5) - assert ping_pong_message_success(transport2, transport3) is True + assert ping_pong_message_success(transport2, transport3) # Node two switches to second server @@ -1172,7 +1172,7 @@ def test_matrix_multi_user_roaming(matrix_transports): transport4.start(raiden_service1, message_handler1, '') gevent.sleep(.5) - assert ping_pong_message_success(transport2, transport4) is True + assert ping_pong_message_success(transport2, transport4) # Node two joins on third server @@ -1180,4 +1180,27 @@ def test_matrix_multi_user_roaming(matrix_transports): transport5.start(raiden_service1, message_handler1, '') gevent.sleep(.5) - assert ping_pong_message_success(transport2, transport5) is True + assert ping_pong_message_success(transport2, transport5) + + +@pytest.mark.xfail +@pytest.mark.parametrize('private_rooms', [[True, True]]) +@pytest.mark.parametrize('matrix_server_count', [2]) +@pytest.mark.parametrize('number_of_transports', [2]) +def test_reproduce_handle_invite_send_race(matrix_transports): + transport0, transport1 = matrix_transports + received_messages0 = set() + received_messages1 = set() + + message_handler0 = MessageHandler(received_messages0) + message_handler1 = MessageHandler(received_messages1) + + raiden_service0 = MockRaidenService(message_handler0) + raiden_service1 = MockRaidenService(message_handler1) + + transport0.start(raiden_service0, message_handler0, '') + transport1.start(raiden_service1, message_handler1, '') + + transport0.start_health_check(raiden_service1.address) + transport1.start_health_check(raiden_service0.address) + assert ping_pong_message_success(transport0, transport1)