- убрал из констант СПАМ то, что и так проверялось смешением алфавита или более общим паттерном
- написал побольше тестов
- нагенерил на основе тестов еще выриантов призыва в личку
This commit is contained in:
kotolex
2023-12-28 11:05:45 +05:00
parent 900d84ad6a
commit ab305bac0c
2 changed files with 53 additions and 15 deletions
+41 -3
View File
@@ -4,13 +4,35 @@ 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, cleaned_text, remove_spaces, has_no_letters
CASES = (
REAL_CASES = (
"Оформим резидeнтствo ОАЭ без предoплаты за 5000 дирхам. Пoдробнoсти в лc",
"Всем привет Я в поисках людей в kpиптo кoмaнду У нас вы пройдете 6ecплaтноe обученue 1-3 дня Можно совмещать с основной paбoтoй",
"Здравствуйте! Нужны 2 человека от 200 $/день. Можно без опыта Пишите в личные сообщения +",
"Здравствуйте!Нужны 2 человека от 200 $/день.Пишите в личные сообщение +"
"Здравствуйте!Нужны 2 человека от 200 $/день.Пишите в личные сообщение +",
f"🙌Присоединяйтесь к нашей команде и освойте мир цифровой валюты совершенно бесплатно! Низкий порог входа "
f"позволяет каждому воплотить свои финансовые амбиции. У нас - не просто обучение, а возможность изменить свое "
f"финансовое будущее. Прокачайте свои навыки вместе с нами!Писать в личные✌️",
)
TEST_CASES = ('here it me.sv/122', "My site is tg.sv/home", "look here goo.by/home", "Go there go.sv/home",
"I am here intim.video/home", "Here ckick it uclck.ru/home", 'WOW💎', 'Attention 🔞', 'Look here ➡️',
'Money for you💰', 'Some cash💸', 'Real money‼️', 'Много раб0т', '0плата гарантируется',
'для вас новый способ заработка', 'в сфере криптовалют', 'в сфере цифровых валют', 'на бирже Binance',
'на бирже ByBit', 'Помогу заработать денег', 'арбитраж вам нужен', 'DEX биржи', 'любую девушку можно',
'прибыль у вaс в кармане', 'обучaю быстро и бесплатно', 'Предлагаю новый вид заработка',
'межбиржевой круг', 'КУПЮРЫ как настоящие', 'kрипта форева', 'биpжа ждет', 'apбитpaж валют',
'в неделю выходит до 100', 'хочу предложить заработок', 'голые фотки баб', 'интимные фото девчат',
'заработка в крипте много не бывает', 'Веду набор в команде', 'Идёт набор ко мне', 'Доход от 100',
'Trading это круто', 'P2P бойз', 'Идет набор куда то', 'нaбop номера', 'в комaндy', 'kpuпта есть',
'бupжы рулят', 'пишитe всем', 'ноль $ в неделю', 'обучаю с нуля и единицы', 'доходы для всех парней',
'по трейдингу пройдем', 'фальшивые рубли это зло', 'зароботку в нете', 'Набuраю номера', 'цuфры есть?',
'Обучу вас плясать', 'прuбором владею', 'остались курсы по шитью', 'Cryptограф', 'kристалл', 'рuсовать',
'в лc пиши', "в личные сообщения пиши", 'Жду в ЛС ребят', 'подробнее в лс напишу', 'напиши в личку друг',
'пишите в ЛС парни', 'Писать в ЛИЧКУ! ура!', 'Пишите в личку админу', 'в л.с. кпсс', 'по вопросам в ЛС',
'пишите мне в ЛС девчата', 'Писать в ЛС не нужно', 'мне в ЛС не пишите', 'в лс пишите', 'Писать в личные'
)
class TestSpam(TestCase):
def test_simple(self):
@@ -19,7 +41,12 @@ class TestSpam(TestCase):
self.assertTrue(is_spam(spam_word))
def test_case_first(self):
for text in CASES:
for text in REAL_CASES:
with self.subTest(f"check case({text})"):
self.assertTrue(is_spam(text))
def test_main_cases(self):
for text in TEST_CASES:
with self.subTest(f"check case({text})"):
self.assertTrue(is_spam(text))
@@ -44,6 +71,17 @@ class TestSpam(TestCase):
self.assertFalse(is_mixed('print("привет")'))
self.assertFalse(is_mixed("print('привет')"))
self.assertFalse(is_mixed("text='слово'"))
self.assertTrue(is_mixed("kрипт"))
self.assertTrue(is_mixed("kpuпт"))
self.assertTrue(is_mixed('бupж'))
self.assertTrue(is_mixed('пишитe'))
self.assertTrue(is_mixed('нaбop'))
self.assertTrue(is_mixed('комaндy'))
self.assertTrue(is_mixed('Набuраю'))
self.assertTrue(is_mixed('цuфр'))
self.assertTrue(is_mixed('прuб'))
self.assertTrue(is_mixed('kр'))
self.assertTrue(is_mixed('рu'))
class TestOthers(TestCase):