rpi: исправить приём картинок и пересланных сообщений в Astra

This commit is contained in:
2026-10-11 14:46:48 +03:00
parent 7d0a891793
commit bba3858894
6 changed files with 560 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
import os
os.environ['TG_TOKEN']='test'
import threading
import unittest
from unittest.mock import Mock, patch
import bot
class Forward(unittest.TestCase):
def test_plain(self):
self.assertIsNone(bot.forwarded_text({'text':'hello'}))
def test_hidden(self):
text=bot.forwarded_text({'forward_origin':{'type':'hidden_user','sender_user_name':'Имя'},'text':'Привет'})
self.assertIn('Имя',text)
self.assertIn('Привет',text)
def test_caption(self):
self.assertIn('Подпись',bot.forwarded_text({'forward_origin':{'type':'channel','chat':{'title':'Канал','username':'channel'}},'caption':'Подпись'}))
def test_no_text(self):
self.assertIn('без подписи',bot.forwarded_text({'forward_origin':{'type':'hidden_user'}}))
def test_legacy(self):
self.assertIn('Legacy',bot.forwarded_text({'forward_date':1,'forward_sender_name':'Legacy','text':'test'}))
def test_slash_not_command(self):
b=bot.Bot.__new__(bot.Bot); b.message_lock=threading.RLock()
b.active={}; b.thread_for=Mock(return_value='tid'); b.codex=Mock()
b.codex.call.return_value={'turn':{'id':'turn'}}
with patch.object(bot,'ALLOWED',{1}),patch.object(bot,'tg'),patch.object(bot,'send'):
b.handle_message({'chat':{'id':1,'type':'private'},'from':{'id':1},'text':'/stop','forward_origin':{'type':'hidden_user'}})
self.assertEqual(b.codex.call.call_args.args[0],'turn/start')
self.assertIn('/stop', b.codex.call.call_args.kwargs['input'][0]['text'])
def test_unauthorized(self):
b=bot.Bot.__new__(bot.Bot); b.message_lock=threading.RLock(); b.thread_for=Mock()
with patch.object(bot,'ALLOWED',{1}),patch.object(bot,'send'):
b.handle_message({'chat':{'id':2,'type':'private'},'from':{'id':2},'text':'test','forward_origin':{'type':'hidden_user'}})
b.thread_for.assert_not_called()
if __name__ == '__main__':
unittest.main()