コード例 #1
0
def test_do_not_log_text_when_fake_is_not_set(logger_info):
    text_not_to_be_logged = "text not to be logged"

    manager = TelegramMessageManager(sender_token="anything", fake=False)
    manager.send_message(to=[], text=text_not_to_be_logged)

    assert logger_info.call_count == 0
コード例 #2
0
def test_log_text_when_fake_set(logger_info):
    text_to_be_logged = "text to be logged"

    manager = TelegramMessageManager(sender_token="anything", fake=True)
    manager.send_message(to=["someone"], text=text_to_be_logged)

    assert logger_info.call_count == 1
    assert text_to_be_logged in logger_info.call_args[0]
コード例 #3
0
def test_log_error_when_api_return_an_error(mocker, request_get):
    payload_error = {
        "ok": False,
        "error_code": 400,
        "description": "Bad Request: chat not found",
    }
    request_get.return_value.json.return_value = payload_error
    logger_error = mocker.patch(
        "spidermon.contrib.actions.telegram.logger.error")
    error_message = "Failed to send message. Telegram api error: %s"

    manager = TelegramMessageManager(sender_token="a-token", fake=False)
    manager.send_message(to=["1234"], text="Hello")

    assert logger_error.call_count == 1
    assert error_message == logger_error.call_args[0][0]
    assert json.dumps(payload_error) == logger_error.call_args[0][1]
コード例 #4
0
def test_send_message(client_send_message, recipients, call_count):
    manager = TelegramMessageManager(sender_token="anything", fake=False)
    manager.send_message(to=recipients, text="message")
    assert client_send_message.call_count == call_count
コード例 #5
0
def test_fail_if_no_token():
    with pytest.raises(NotConfigured):
        TelegramMessageManager(sender_token=None, fake=False)