RULES: easy way

- удален модуль рулз
- удалены библиотеки bs4 и lxml
- правила теперь в константах и оттуда их получаем по номеру
- пофиксил баг в тестах(не мокали инкремент)
This commit is contained in:
kotolex
2023-12-24 20:07:01 +05:00
parent 23105f46a2
commit 5d887c0285
8 changed files with 52 additions and 33 deletions
+13 -9
View File
@@ -236,19 +236,23 @@ class TestBot(IsolatedAsyncioTestCase):
async def test_spam_text(self):
# Нужно подставить антиспам вкл.
with patch("src.filters.is_antispam_enabled") as mocked:
mocked.return_value = True
await self.bot.process_new_updates([get_update('пишите мне в ЛС, Писать в ЛС')])
self.assertEqual(RESULTS[0][1], "deleteMessage")
self.assertEqual(RESULTS[1][1], "banChatMember")
self.assertEqual(RESULTS[1][0], {'chat_id': 11, 'user_id': 10, 'until_date': None})
# Нужно подменить инкремент, нельзя реально в шелве работать в тестах
with patch("src.commands.increment") as _mocked_shelve:
mocked.return_value = True
await self.bot.process_new_updates([get_update('пишите мне в ЛС, Писать в ЛС')])
self.assertEqual(RESULTS[0][1], "deleteMessage")
self.assertEqual(RESULTS[1][1], "banChatMember")
self.assertEqual(RESULTS[1][0], {'chat_id': 11, 'user_id': 10, 'until_date': None})
async def test_wrong_url(self):
# Нужно подставить антиспам вкл.
with patch("src.filters.is_antispam_enabled") as mocked:
mocked.return_value = True
await self.bot.process_new_updates([get_update('тут подробнее https://zvuk.com/artist/61375')])
self.assertEqual(RESULTS[0][1], "deleteMessage")
self.assertEqual(RESULTS[0][0], {'chat_id': 11, 'message_id': 1})
# Нужно подменить инкремент, нельзя реально в шелве работать в тестах
with patch("src.commands.increment") as _mocked_shelve:
mocked.return_value = True
await self.bot.process_new_updates([get_update('тут подробнее https://zvuk.com/artist/61375')])
self.assertEqual(RESULTS[0][1], "deleteMessage")
self.assertEqual(RESULTS[0][0], {'chat_id': 11, 'message_id': 1})
async def test_update_stats(self):
# Нужно подставить антиспам вкл.
+11 -2
View File
@@ -1,7 +1,7 @@
from unittest import TestCase, main
from unittest.mock import MagicMock
from src.constants import SPAM, BAN_WORDS, ADMIN_ID
from src.helpers import is_spam, is_mixed, is_ban_words_in_caption, is_in_not_allowed, is_nongrata, is_admin
from src.constants import SPAM, BAN_WORDS, ADMIN_ID, RULES_TEXT
from src.helpers import is_spam, is_mixed, is_ban_words_in_caption, is_in_not_allowed, is_nongrata, is_admin, fetch_rule
CASES = (
"Оформим резидeнтствo ОАЭ без предoплаты за 5000 дирхам. Пoдробнoсти в лc",
@@ -72,6 +72,15 @@ class TestOthers(TestCase):
m = MagicMock(from_user=MagicMock(id=text))
self.assertEqual(is_admin(m), expected)
def test_fetch_rule(self):
for index, text in enumerate(RULES_TEXT,1):
with self.subTest(f"fetch rule {index}"):
self.assertEqual(fetch_rule(index), text)
def test_fetch_non_existent_rule(self):
self.assertEqual(fetch_rule(0), 'Пока не придумали')
self.assertEqual(fetch_rule(100), 'Пока не придумали')
if __name__ == '__main__':
main()