fix: bug IDFilter checking message from channel (#376)

* fix: bug IDFilter checking message from channel

* chore: add mark.asyncio for tests which were ignored previously
This commit is contained in:
Egor 2020-07-05 03:08:38 +03:00 committed by GitHub
parent 5586e5110d
commit f904292751
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 3 deletions

View file

@ -6,10 +6,10 @@ import pytest
from aiogram.dispatcher.filters.builtin import (
Text,
extract_chat_ids,
ChatIDArgumentType, ForwardedMessageFilter,
ChatIDArgumentType, ForwardedMessageFilter, IDFilter,
)
from aiogram.types import Message
from tests.types.dataset import MESSAGE
from tests.types.dataset import MESSAGE, MESSAGE_FROM_CHANNEL
class TestText:
@ -75,6 +75,8 @@ def test_extract_chat_ids(chat_id: ChatIDArgumentType, expected: Set[int]):
class TestForwardedMessageFilter:
@pytest.mark.asyncio
async def test_filter_forwarded_messages(self):
filter = ForwardedMessageFilter(is_forwarded=True)
@ -85,6 +87,7 @@ class TestForwardedMessageFilter:
assert await filter.check(forwarded_message)
assert not await filter.check(not_forwarded_message)
@pytest.mark.asyncio
async def test_filter_not_forwarded_messages(self):
filter = ForwardedMessageFilter(is_forwarded=False)
@ -94,3 +97,14 @@ class TestForwardedMessageFilter:
assert await filter.check(not_forwarded_message)
assert not await filter.check(forwarded_message)
class TestIDFilter:
@pytest.mark.asyncio
async def test_chat_id_for_channels(self):
message_from_channel = Message(**MESSAGE_FROM_CHANNEL)
filter = IDFilter(chat_id=message_from_channel.chat.id)
assert await filter.check(message_from_channel)

View file

@ -409,6 +409,20 @@ MESSAGE_WITH_VOICE = {
"voice": VOICE,
}
CHANNEL = {
"type": "channel",
"username": "best_channel_ever",
"id": -1001065170817,
}
MESSAGE_FROM_CHANNEL = {
"message_id": 123432,
"from": None,
"chat": CHANNEL,
"date": 1508768405,
"text": "Hi, world!",
}
PRE_CHECKOUT_QUERY = {
"id": "262181558630368727",
"from": USER,