mirror of
https://github.com/status-im/status-go.git
synced 2025-02-06 11:56:01 +00:00
08eee8a647
* test_: add python linters * test_: add python linters * test_: add python linters * test_: add python linters * test_: enabled pyright typeCheckingMode * test_: enabled pyright typeCheckingMode
81 lines
3.6 KiB
Python
81 lines
3.6 KiB
Python
from time import sleep
|
|
from uuid import uuid4
|
|
import pytest
|
|
from test_cases import OneToOneMessageTestCase
|
|
from resources.constants import DEFAULT_DISPLAY_NAME
|
|
from clients.signals import SignalType
|
|
from resources.enums import MessageContentType
|
|
|
|
|
|
@pytest.mark.rpc
|
|
class TestOneToOneMessages(OneToOneMessageTestCase):
|
|
|
|
@pytest.fixture(scope="class", autouse=True)
|
|
def setup_nodes(self, request):
|
|
await_signals = [
|
|
SignalType.MESSAGES_NEW.value,
|
|
SignalType.MESSAGE_DELIVERED.value,
|
|
]
|
|
request.cls.sender = self.sender = self.initialize_backend(await_signals=await_signals)
|
|
request.cls.receiver = self.receiver = self.initialize_backend(await_signals=await_signals)
|
|
|
|
@pytest.mark.dependency(name="test_one_to_one_message_baseline")
|
|
def test_one_to_one_message_baseline(self, message_count=1):
|
|
pk_receiver = self.receiver.get_pubkey(DEFAULT_DISPLAY_NAME)
|
|
|
|
self.sender.send_contact_request(pk_receiver, "contact_request")
|
|
|
|
sent_messages = []
|
|
for i in range(message_count):
|
|
message_text = f"test_message_{i+1}_{uuid4()}"
|
|
response = self.sender.send_message(pk_receiver, message_text)
|
|
expected_message = self.get_message_by_content_type(response, content_type=MessageContentType.TEXT_PLAIN.value)
|
|
sent_messages.append(expected_message)
|
|
sleep(0.01)
|
|
|
|
for i, expected_message in enumerate(sent_messages):
|
|
messages_new_event = self.receiver.find_signal_containing_pattern(
|
|
SignalType.MESSAGES_NEW.value,
|
|
event_pattern=expected_message.get("id"),
|
|
timeout=60,
|
|
)
|
|
self.validate_signal_event_against_response(
|
|
signal_event=messages_new_event,
|
|
fields_to_validate={"text": "text"},
|
|
expected_message=expected_message,
|
|
)
|
|
|
|
@pytest.mark.dependency(depends=["test_one_to_one_message_baseline"])
|
|
def test_multiple_one_to_one_messages(self):
|
|
self.test_one_to_one_message_baseline(message_count=50)
|
|
|
|
@pytest.mark.dependency(depends=["test_one_to_one_message_baseline"])
|
|
@pytest.mark.skip(reason="Skipping until add_latency is implemented")
|
|
def test_one_to_one_message_with_latency(self):
|
|
with self.add_latency():
|
|
self.test_one_to_one_message_baseline()
|
|
|
|
@pytest.mark.dependency(depends=["test_one_to_one_message_baseline"])
|
|
@pytest.mark.skip(reason="Skipping until add_packet_loss is implemented")
|
|
def test_one_to_one_message_with_packet_loss(self):
|
|
with self.add_packet_loss():
|
|
self.test_one_to_one_message_baseline()
|
|
|
|
@pytest.mark.dependency(depends=["test_one_to_one_message_baseline"])
|
|
@pytest.mark.skip(reason="Skipping until add_low_bandwith is implemented")
|
|
def test_one_to_one_message_with_low_bandwidth(self):
|
|
with self.add_low_bandwith():
|
|
self.test_one_to_one_message_baseline()
|
|
|
|
@pytest.mark.dependency(depends=["test_one_to_one_message_baseline"])
|
|
@pytest.mark.skip(reason="Skipping until node_pause is implemented")
|
|
def test_one_to_one_message_with_node_pause_30_seconds(self):
|
|
pk_receiver = self.receiver.get_pubkey("Receiver")
|
|
self.sender.send_contact_request(pk_receiver, "contact_request")
|
|
with self.node_pause(self.receiver):
|
|
message_text = f"test_message_{uuid4()}"
|
|
self.sender.send_message(pk_receiver, message_text)
|
|
sleep(30)
|
|
self.receiver.find_signal_containing_pattern(SignalType.MESSAGES_NEW.value, event_pattern=message_text)
|
|
self.sender.wait_for_signal("messages.delivered")
|