X Tutup
Skip to content

Commit 6159640

Browse files
committed
__call__ should return the result
Also add tests with both & and |.
1 parent be0f5bc commit 6159640

File tree

2 files changed

+27
-14
lines changed

2 files changed

+27
-14
lines changed

telegram/ext/filters.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class BaseFilter(object):
2323
"""Base class for all Message Filters"""
2424

2525
def __call__(self, message):
26-
self.filter(message)
26+
return self.filter(message)
2727

2828
def __and__(self, other):
2929
return MergedFilter(self, and_filter=other)

tests/test_filters.py

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,11 @@
2323
import sys
2424
import unittest
2525
from datetime import datetime
26-
2726
import functools
2827

29-
from telegram import MessageEntity
30-
3128
sys.path.append('.')
3229

33-
from telegram import Message, User, Chat
30+
from telegram import Message, User, Chat, MessageEntity
3431
from telegram.ext import Filters
3532
from tests.base import BaseTest
3633

@@ -40,6 +37,7 @@ class FiltersTest(BaseTest, unittest.TestCase):
4037

4138
def setUp(self):
4239
self.message = Message(0, User(0, "Testuser"), datetime.now(), Chat(0, 'private'))
40+
self.e = functools.partial(MessageEntity, offset=0, length=0)
4341

4442
def test_filters_text(self):
4543
self.message.text = 'test'
@@ -155,23 +153,19 @@ def test_filters_status_update(self):
155153
self.message.pinned_message = None
156154

157155
def test_entities_filter(self):
158-
e = functools.partial(MessageEntity, offset=0, length=0)
159-
160-
self.message.entities = [e(MessageEntity.MENTION)]
156+
self.message.entities = [self.e(MessageEntity.MENTION)]
161157
self.assertTrue(Filters.entity(MessageEntity.MENTION)(self.message))
162158

163159
self.message.entities = []
164160
self.assertFalse(Filters.entity(MessageEntity.MENTION)(self.message))
165161

166-
self.message.entities = [e(MessageEntity.BOLD)]
162+
self.message.entities = [self.e(MessageEntity.BOLD)]
167163
self.assertFalse(Filters.entity(MessageEntity.MENTION)(self.message))
168164

169-
self.message.entities = [e(MessageEntity.BOLD), e(MessageEntity.MENTION)]
165+
self.message.entities = [self.e(MessageEntity.BOLD), self.e(MessageEntity.MENTION)]
170166
self.assertTrue(Filters.entity(MessageEntity.MENTION)(self.message))
171167

172168
def test_and_filters(self):
173-
# For now just test with forwarded as that's the only one that makes sense
174-
# That'll change when we get a entities filter
175169
self.message.text = 'test'
176170
self.message.forward_date = True
177171
self.assertTrue((Filters.text & Filters.forwarded)(self.message))
@@ -181,9 +175,16 @@ def test_and_filters(self):
181175
self.message.forward_date = None
182176
self.assertFalse((Filters.text & Filters.forwarded)(self.message))
183177

178+
self.message.text = 'test'
179+
self.message.forward_date = True
180+
self.message.entities = [self.e(MessageEntity.MENTION)]
181+
self.assertTrue((Filters.text & Filters.forwarded & Filters.entity(MessageEntity.MENTION))(
182+
self.message))
183+
self.message.entities = [self.e(MessageEntity.BOLD)]
184+
self.assertFalse((Filters.text & Filters.forwarded & Filters.entity(MessageEntity.MENTION)
185+
)(self.message))
186+
184187
def test_or_filters(self):
185-
# For now just test with forwarded as that's the only one that makes sense
186-
# That'll change when we get a entities filter
187188
self.message.text = 'test'
188189
self.assertTrue((Filters.text | Filters.status_update)(self.message))
189190
self.message.group_chat_created = True
@@ -193,6 +194,18 @@ def test_or_filters(self):
193194
self.message.group_chat_created = False
194195
self.assertFalse((Filters.text | Filters.status_update)(self.message))
195196

197+
def test_and_or_filters(self):
198+
self.message.text = 'test'
199+
self.message.forward_date = True
200+
self.assertTrue((Filters.text & (Filters.forwarded | Filters.entity(MessageEntity.MENTION))
201+
)(self.message))
202+
self.message.forward_date = False
203+
self.assertFalse((Filters.text & (Filters.forwarded | Filters.entity(MessageEntity.MENTION)
204+
))(self.message))
205+
self.message.entities = [self.e(MessageEntity.MENTION)]
206+
self.assertTrue((Filters.text & (Filters.forwarded | Filters.entity(MessageEntity.MENTION))
207+
)(self.message))
208+
196209

197210
if __name__ == '__main__':
198211
unittest.main()

0 commit comments

Comments
 (0)
X Tutup