-
Notifications
You must be signed in to change notification settings - Fork 4.6k
/
test_telegram.py
67 lines (55 loc) · 1.92 KB
/
test_telegram.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# file deepcode ignore HardcodedNonCryptoSecret/test: Secrets are all just examples for tests. # noqa: E501
# file deepcode ignore NoHardcodedCredentials/test: Secrets are all just examples for tests. # noqa: E501
import json
import logging
from unittest.mock import patch
import rasa.core.run
from rasa.core.channels import TelegramInput
from rasa.core.channels.telegram import TelegramOutput
from rasa.core.agent import Agent
logger = logging.getLogger(__name__)
async def noop(*args, **kwargs):
"""Just do nothing."""
pass
async def mock_get_me(self):
self.username = "YOUR_TELEGRAM_BOT"
return self
@patch.object(TelegramOutput, "set_webhook", noop)
@patch.object(TelegramOutput, "get_me", mock_get_me)
def test_telegram_edit_message():
telegram_test_edited_message = {
"update_id": 280069275,
"edited_message": {
"message_id": 591,
"from": {
"id": 1760450482,
"is_bot": "False",
"first_name": "Martin",
"last_name": "Man",
"language_code": "en",
},
"chat": {
"id": 1760450482,
"first_name": "Martin",
"last_name": "Man",
"type": "private",
},
"date": 1621577771,
"edit_date": 1621580124,
"text": "Hello!",
},
}
input_channel = TelegramInput(
# you get this when setting up a bot
access_token="123:YOUR_ACCESS_TOKEN",
# this is your bots username
verify="YOUR_TELEGRAM_BOT",
# the url your bot should listen for messages
webhook_url="YOUR_WEBHOOK_URL",
)
app = rasa.core.run.configure_app([input_channel], port=5004)
app.ctx.agent = Agent()
_, res = app.test_client.post(
"/webhooks/telegram/webhook", json=json.dumps(telegram_test_edited_message)
)
assert res.status_code == 200