From aad23cabff13f550ddb18e1b1fc8293dfb2056bd Mon Sep 17 00:00:00 2001 From: Or Bin Date: Sun, 17 Mar 2019 00:02:28 +0200 Subject: [PATCH] #10 Created the first test! --- __init__.py | 0 setup.py | 4 ++-- tests/__init__.py | 0 tests/triggers/__init__.py | 0 tests/triggers/test_text_triggers.py | 31 ++++++++++++++++++++++++++++ 5 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 __init__.py create mode 100644 tests/__init__.py create mode 100644 tests/triggers/__init__.py create mode 100644 tests/triggers/test_text_triggers.py diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/setup.py b/setup.py index 5d5b98d..8890305 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -from setuptools import setup, find_packages +from setuptools import setup, find_namespace_packages with open("README.md", "r") as f: LONG_DESCRIPTION = f.read() @@ -35,7 +35,7 @@ keywords='gramhopper telegram bot', - packages=find_packages(), + packages=find_namespace_packages(include=['gramhopper', 'gramhopper.*']), entry_points={ 'console_scripts': [ diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/triggers/__init__.py b/tests/triggers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/triggers/test_text_triggers.py b/tests/triggers/test_text_triggers.py new file mode 100644 index 0000000..fd26671 --- /dev/null +++ b/tests/triggers/test_text_triggers.py @@ -0,0 +1,31 @@ +from datetime import datetime +from pytest import fixture +from telegram import Message, User, Chat, Update +from ...gramhopper.triggers.text_triggers import _RegExpTrigger + + +@fixture(scope='module') +def update(): + return Update(0, Message(0, User(0, 'Testuser', False), datetime.now(), + Chat(0, 'private'))) + + +def test_regexp_trigger(update): + EMAIL_PATTERN = '^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$' + trigger = _RegExpTrigger(EMAIL_PATTERN) + + # Assuring that the regexp matches the message text + update.message.text = 'user@example.com' + result = trigger.check_trigger(update) + assert result.should_respond + assert 'match' in result.response_payload + match = result.response_payload['match'] + assert match[0] == 'user' + assert match[1] == 'example' + assert match[2] == 'com' + + # Assuring that the regexp doesn't match the message text + update.message.text = '' + result = trigger.check_trigger(update) + assert not result.should_respond + assert result.response_payload == {}