def test_deserialize_messages_that_is_too_big(request_monitoring_message, capsys): data = str(b"/0" * 1000000) assert sys.getsizeof(data) >= 1000000 deserialize_messages( data=data, peer_address=request_monitoring_message.sender, rate_limiter=RateLimiter(allowed_bytes=1000000, reset_interval=timedelta(minutes=1)), ) captured = capsys.readouterr() assert "Sender is rate limited" in captured.out
def test_deserialize_messages_valid_messages(request_monitoring_message): message = MessageSerializer.serialize(request_monitoring_message) raw_string = message + "\n" + message messages = deserialize_messages( data=raw_string, peer_address=request_monitoring_message.sender) assert len(messages) == 2
def test_deserialize_messages_valid_message(request_monitoring_message): message_json = request_monitoring_message.to_dict() messages = deserialize_messages( data=json.dumps(message_json), peer_address=request_monitoring_message.sender) assert len(messages) == 1
def test_deserialize_messages_invalid_message_type(request_monitoring_message): message_json = request_monitoring_message.to_dict() message_json["type"] = "SomeNonexistantMessage" messages = deserialize_messages(data=json.dumps(message_json), peer_address=INVALID_PEER_ADDRESS) assert len(messages) == 0
def test_deserialize_messages_valid_messages(request_monitoring_message): message_json = request_monitoring_message.to_dict() raw_string = json.dumps(message_json) + "\n" + json.dumps(message_json) messages = deserialize_messages( data=raw_string, peer_address=request_monitoring_message.sender) assert len(messages) == 2
def test_deserialize_messages_invalid_message_class( request_monitoring_message): message_json = request_monitoring_message.to_dict() with patch("raiden_libs.matrix.message_from_dict", new=Mock()): messages = deserialize_messages(data=json.dumps(message_json), peer_address=INVALID_PEER_ADDRESS) assert len(messages) == 0
def test_deserialize_checks_datetimes_in_messages(): invalid_fee_update = get_fee_update_message( updating_participant=PRIVATE_KEY_1_ADDRESS, privkey_signer=PRIVATE_KEY_1, timestamp=datetime.now(timezone.utc), ) message = MessageSerializer.serialize(invalid_fee_update) messages = deserialize_messages(data=message, peer_address=PRIVATE_KEY_1_ADDRESS) assert len(messages) == 0 valid_fee_update = get_fee_update_message( updating_participant=PRIVATE_KEY_1_ADDRESS, privkey_signer=PRIVATE_KEY_1, timestamp=datetime.utcnow(), ) message = MessageSerializer.serialize(valid_fee_update) messages = deserialize_messages(data=message, peer_address=PRIVATE_KEY_1_ADDRESS) assert len(messages) == 1
def test_deserialize_messages_with_missing_fields(request_monitoring_message): message_dict = DictSerializer.serialize(request_monitoring_message) list_of_key_words = list(message_dict.keys()) # non closing signature is not required by this message type list_of_key_words.remove("non_closing_signature") for key in list_of_key_words: message_json_broken = deepcopy(message_dict) del message_json_broken[key] messages = deserialize_messages( data=json.dumps(message_json_broken), peer_address=request_monitoring_message.sender) assert len(messages) == 0
def test_deserialize_messages_invalid_sender(request_monitoring_message): message = MessageSerializer.serialize(request_monitoring_message) messages = deserialize_messages(data=message, peer_address=INVALID_PEER_ADDRESS) assert len(messages) == 0
def test_deserialize_messages(message_data): messages = deserialize_messages(data=message_data, peer_address=INVALID_PEER_ADDRESS) assert len(messages) == 0
def test_deserialize_messages_valid_message(request_monitoring_message): message = MessageSerializer.serialize(request_monitoring_message) messages = deserialize_messages( data=message, peer_address=request_monitoring_message.sender) assert len(messages) == 1
def test_deserialize_messages_invalid_sender(request_monitoring_message): message_json = request_monitoring_message.to_dict() messages = deserialize_messages(data=json.dumps(message_json), peer_address=INVALID_PEER_ADDRESS) assert len(messages) == 0