def send_token(sender: User, recipient: User, amount: float, reason_str: Optional[str] = None, reason_id: Optional[int] = None): TokenProcessor.send_token(sender, recipient, amount, reason_str, reason_id)
def test_send_token(mocker, test_client, init_database, initialised_blockchain_network, lang, token1_symbol, token2_symbol, recipient_balance, expected_send_msg, expected_receive_msg): org = OrganisationFactory() sender = UserFactory(preferred_language=lang, phone=phone(), first_name="Bob", last_name="Foo", default_organisation=org) token1 = Token.query.filter_by(symbol=token1_symbol).first() create_transfer_account_for_user(sender, token1, 20000) recipient = UserFactory(preferred_language=lang, phone=phone(), first_name="Joe", last_name="Bar", default_organisation=org) token2 = Token.query.filter_by(symbol=token2_symbol).first() create_transfer_account_for_user(recipient, token2, 30000) def mock_convert(exchange_contract, from_token, to_token, from_amount, signing_address): if from_token.symbol == "SM1": return from_amount * 1.5 else: return from_amount * 0.75 mocker.patch('server.bt.get_conversion_amount', mock_convert) messages = [] def mock_send_message(phone, message): messages.append({'phone': phone, 'message': message}) mocker.patch('server.message_processor.send_message', mock_send_message) TokenProcessor.send_token(sender, recipient, 1000, "A reason", 1) assert default_transfer_account(sender).balance == 19000 assert default_transfer_account(recipient).balance == recipient_balance assert len(messages) == 2 sent_message = messages[0] assert sent_message['phone'] == sender.phone assert expected_send_msg in sent_message['message'] received_message = messages[1] assert received_message['phone'] == recipient.phone assert expected_receive_msg in received_message['message']
def send_token(sender: User, recipient: User, amount: float, reason_str: str, reason_id: int): TokenProcessor.send_token(sender, recipient, amount, reason_str, reason_id)