Пример #1
0
def get_false_update_fixture_decorator_params():
    message = Message(1, User(1, '', False), DATE, Chat(1, ''), text='test')
    params = [{
        'callback_query':
        CallbackQuery(1, User(1, '', False), 'chat', message=message)
    }, {
        'channel_post': message
    }, {
        'edited_channel_post': message
    }, {
        'inline_query': InlineQuery(1, User(1, '', False), '', '')
    }, {
        'chosen_inline_result':
        ChosenInlineResult('id', User(1, '', False), '')
    }, {
        'shipping_query':
        ShippingQuery('id', User(1, '', False), '', None)
    }, {
        'pre_checkout_query':
        PreCheckoutQuery('id', User(1, '', False), '', 0, '')
    }, {
        'callback_query': CallbackQuery(1, User(1, '', False), 'chat')
    }]
    ids = tuple(key for kwargs in params for key in kwargs)
    return {'params': params, 'ids': ids}
Пример #2
0
    def de_json(cls, data: Optional[JSONDict],
                bot: 'Bot') -> Optional['Update']:
        data = cls.parse_data(data)

        if not data:
            return None

        data['message'] = Message.de_json(data.get('message'), bot)
        data['edited_message'] = Message.de_json(data.get('edited_message'),
                                                 bot)
        data['inline_query'] = InlineQuery.de_json(data.get('inline_query'),
                                                   bot)
        data['chosen_inline_result'] = ChosenInlineResult.de_json(
            data.get('chosen_inline_result'), bot)
        data['callback_query'] = CallbackQuery.de_json(
            data.get('callback_query'), bot)
        data['shipping_query'] = ShippingQuery.de_json(
            data.get('shipping_query'), bot)
        data['pre_checkout_query'] = PreCheckoutQuery.de_json(
            data.get('pre_checkout_query'), bot)
        data['channel_post'] = Message.de_json(data.get('channel_post'), bot)
        data['edited_channel_post'] = Message.de_json(
            data.get('edited_channel_post'), bot)
        data['poll'] = Poll.de_json(data.get('poll'), bot)
        data['poll_answer'] = PollAnswer.de_json(data.get('poll_answer'), bot)

        return cls(**data)
Пример #3
0
    def de_json(data, bot):
        """
        Args:
            data (dict):
            bot (telegram.Bot):

        Returns:
            telegram.Update:
        """
        if not data:
            return None

        data = super(Update, Update).de_json(data, bot)

        data['message'] = Message.de_json(data.get('message'), bot)
        data['edited_message'] = Message.de_json(data.get('edited_message'), bot)
        data['inline_query'] = InlineQuery.de_json(data.get('inline_query'), bot)
        data['chosen_inline_result'] = ChosenInlineResult.de_json(
            data.get('chosen_inline_result'), bot)
        data['callback_query'] = CallbackQuery.de_json(data.get('callback_query'), bot)
        data['shipping_query'] = ShippingQuery.de_json(data.get('shipping_query'), bot)
        data['pre_checkout_query'] = PreCheckoutQuery.de_json(data.get('pre_checkout_query'), bot)
        data['channel_post'] = Message.de_json(data.get('channel_post'), bot)
        data['edited_channel_post'] = Message.de_json(data.get('edited_channel_post'), bot)

        return Update(**data)
Пример #4
0
    def de_json(cls, data, bot):
        if not data:
            return None

        data = super(Update, cls).de_json(data, bot)

        data['message'] = Message.de_json(data.get('message'), bot)
        data['edited_message'] = Message.de_json(data.get('edited_message'),
                                                 bot)
        data['inline_query'] = InlineQuery.de_json(data.get('inline_query'),
                                                   bot)
        data['chosen_inline_result'] = ChosenInlineResult.de_json(
            data.get('chosen_inline_result'), bot)
        data['callback_query'] = CallbackQuery.de_json(
            data.get('callback_query'), bot)
        data['shipping_query'] = ShippingQuery.de_json(
            data.get('shipping_query'), bot)
        data['pre_checkout_query'] = PreCheckoutQuery.de_json(
            data.get('pre_checkout_query'), bot)
        data['channel_post'] = Message.de_json(data.get('channel_post'), bot)
        data['edited_channel_post'] = Message.de_json(
            data.get('edited_channel_post'), bot)
        data['poll'] = Poll.de_json(data.get('poll'), bot)

        return cls(**data)
 def test_all_update_types(self, dp, bot, user1):
     handler = ConversationHandler(
         entry_points=[CommandHandler('start', self.start_end)],
         states={},
         fallbacks=[])
     message = Message(0, user1, None, self.group, text='ignore', bot=bot)
     callback_query = CallbackQuery(0,
                                    user1,
                                    None,
                                    message=message,
                                    data='data',
                                    bot=bot)
     chosen_inline_result = ChosenInlineResult(0, user1, 'query', bot=bot)
     inline_query = InlineQuery(0, user1, 'query', 0, bot=bot)
     pre_checkout_query = PreCheckoutQuery(0,
                                           user1,
                                           'USD',
                                           100, [],
                                           bot=bot)
     shipping_query = ShippingQuery(0, user1, [], None, bot=bot)
     assert not handler.check_update(
         Update(0, callback_query=callback_query))
     assert not handler.check_update(
         Update(0, chosen_inline_result=chosen_inline_result))
     assert not handler.check_update(Update(0, inline_query=inline_query))
     assert not handler.check_update(Update(0, message=message))
     assert not handler.check_update(
         Update(0, pre_checkout_query=pre_checkout_query))
     assert not handler.check_update(
         Update(0, shipping_query=shipping_query))
Пример #6
0
    def de_json(data, bot):
        """
        Args:
            data (dict):
            bot (telegram.Bot):

        Returns:
            telegram.Update:
        """
        if not data:
            return None

        data = super(Update, Update).de_json(data, bot)

        data['message'] = Message.de_json(data.get('message'), bot)
        data['edited_message'] = Message.de_json(data.get('edited_message'),
                                                 bot)
        data['inline_query'] = InlineQuery.de_json(data.get('inline_query'),
                                                   bot)
        data['chosen_inline_result'] = ChosenInlineResult.de_json(
            data.get('chosen_inline_result'), bot)
        data['callback_query'] = CallbackQuery.de_json(
            data.get('callback_query'), bot)
        data['shipping_query'] = ShippingQuery.de_json(
            data.get('shipping_query'), bot)
        data['pre_checkout_query'] = PreCheckoutQuery.de_json(
            data.get('pre_checkout_query'), bot)
        data['channel_post'] = Message.de_json(data.get('channel_post'), bot)
        data['edited_channel_post'] = Message.de_json(
            data.get('edited_channel_post'), bot)

        return Update(**data)
Пример #7
0
    def de_json(cls, data: Optional[JSONDict],
                bot: 'Bot') -> Optional['Update']:
        """See :meth:`telegram.TelegramObject.de_json`."""
        data = cls._parse_data(data)

        if not data:
            return None

        data['message'] = Message.de_json(data.get('message'), bot)
        data['edited_message'] = Message.de_json(data.get('edited_message'),
                                                 bot)
        data['inline_query'] = InlineQuery.de_json(data.get('inline_query'),
                                                   bot)
        data['chosen_inline_result'] = ChosenInlineResult.de_json(
            data.get('chosen_inline_result'), bot)
        data['callback_query'] = CallbackQuery.de_json(
            data.get('callback_query'), bot)
        data['shipping_query'] = ShippingQuery.de_json(
            data.get('shipping_query'), bot)
        data['pre_checkout_query'] = PreCheckoutQuery.de_json(
            data.get('pre_checkout_query'), bot)
        data['channel_post'] = Message.de_json(data.get('channel_post'), bot)
        data['edited_channel_post'] = Message.de_json(
            data.get('edited_channel_post'), bot)
        data['poll'] = Poll.de_json(data.get('poll'), bot)
        data['poll_answer'] = PollAnswer.de_json(data.get('poll_answer'), bot)
        data['my_chat_member'] = ChatMemberUpdated.de_json(
            data.get('my_chat_member'), bot)
        data['chat_member'] = ChatMemberUpdated.de_json(
            data.get('chat_member'), bot)
        data['chat_join_request'] = ChatJoinRequest.de_json(
            data.get('chat_join_request'), bot)

        return cls(**data)
Пример #8
0
    def de_json(cls, data, bot):
        if not data:
            return None

        data = super(Update, cls).de_json(data, bot)

        message = data.get('message')
        if message:
            message['default_quote'] = data.get('default_quote')
        data['message'] = Message.de_json(message, bot)
        edited_message = data.get('edited_message')
        if edited_message:
            edited_message['default_quote'] = data.get('default_quote')
        data['edited_message'] = Message.de_json(edited_message, bot)
        data['inline_query'] = InlineQuery.de_json(data.get('inline_query'), bot)
        data['chosen_inline_result'] = ChosenInlineResult.de_json(
            data.get('chosen_inline_result'), bot)
        callback_query = data.get('callback_query')
        if callback_query:
            callback_query['default_quote'] = data.get('default_quote')
        data['callback_query'] = CallbackQuery.de_json(callback_query, bot)
        data['shipping_query'] = ShippingQuery.de_json(data.get('shipping_query'), bot)
        data['pre_checkout_query'] = PreCheckoutQuery.de_json(data.get('pre_checkout_query'), bot)
        channel_post = data.get('channel_post')
        if channel_post:
            channel_post['default_quote'] = data.get('default_quote')
        data['channel_post'] = Message.de_json(channel_post, bot)
        edited_channel_post = data.get('edited_channel_post')
        if edited_channel_post:
            edited_channel_post['default_quote'] = data.get('default_quote')
        data['edited_channel_post'] = Message.de_json(edited_channel_post, bot)
        data['poll'] = Poll.de_json(data.get('poll'), bot)

        return cls(**data)
Пример #9
0
def shipping_query(bot):
    return ShippingQuery(
        TestShippingQuery.id_,
        TestShippingQuery.from_user,
        TestShippingQuery.invoice_payload,
        TestShippingQuery.shipping_address,
        bot=bot,
    )
def shiping_query():
    return Update(
        1,
        shipping_query=ShippingQuery(
            42,
            User(1, 'test user', False),
            'invoice_payload',
            ShippingAddress('EN', 'my_state', 'my_city', 'steer_1', '', 'post_code'),
        ),
    )
Пример #11
0
    def test_equality(self):
        a = ShippingQuery(self.id, self.from_user, self.invoice_payload, self.shipping_address)
        b = ShippingQuery(self.id, self.from_user, self.invoice_payload, self.shipping_address)
        c = ShippingQuery(self.id, None, '', None)
        d = ShippingQuery(0, self.from_user, self.invoice_payload, self.shipping_address)
        e = Update(self.id)

        assert a == b
        assert hash(a) == hash(b)
        assert a is not b

        assert a == c
        assert hash(a) == hash(c)

        assert a != d
        assert hash(a) != hash(d)

        assert a != e
        assert hash(a) != hash(e)
def shiping_query():
    return Update(
        1,
        shipping_query=ShippingQuery(
            42,
            User(1, "test user", False),
            "invoice_payload",
            ShippingAddress("EN", "my_state", "my_city", "steer_1", "",
                            "post_code"),
        ),
    )
    def test_de_json(self, bot):
        json_dict = {
            'id': TestShippingQuery.id,
            'invoice_payload': TestShippingQuery.invoice_payload,
            'from': TestShippingQuery.from_user.to_dict(),
            'shipping_address': TestShippingQuery.shipping_address.to_dict()
        }
        shipping_query = ShippingQuery.de_json(json_dict, bot)

        assert shipping_query.id == self.id
        assert shipping_query.invoice_payload == self.invoice_payload
        assert shipping_query.from_user == self.from_user
        assert shipping_query.shipping_address == self.shipping_address
Пример #14
0
    def test_de_json(self, bot):
        json_dict = {
            'id': TestShippingQuery.id,
            'invoice_payload': TestShippingQuery.invoice_payload,
            'from': TestShippingQuery.from_user.to_dict(),
            'shipping_address': TestShippingQuery.shipping_address.to_dict()
        }
        shipping_query = ShippingQuery.de_json(json_dict, bot)

        assert shipping_query.id == self.id
        assert shipping_query.invoice_payload == self.invoice_payload
        assert shipping_query.from_user == self.from_user
        assert shipping_query.shipping_address == self.shipping_address
Пример #15
0
    def test_de_json(self, bot):
        json_dict = {
            "id": TestShippingQuery.id_,
            "invoice_payload": TestShippingQuery.invoice_payload,
            "from": TestShippingQuery.from_user.to_dict(),
            "shipping_address": TestShippingQuery.shipping_address.to_dict(),
        }
        shipping_query = ShippingQuery.de_json(json_dict, bot)

        assert shipping_query.id == self.id_
        assert shipping_query.invoice_payload == self.invoice_payload
        assert shipping_query.from_user == self.from_user
        assert shipping_query.shipping_address == self.shipping_address
        assert shipping_query.get_bot() is bot
Пример #16
0
    def de_json(cls, data, bot):
        if not data:
            return None

        data = super(Update, cls).de_json(data, bot)

        data['message'] = Message.de_json(data.get('message'), bot)
        data['edited_message'] = Message.de_json(data.get('edited_message'), bot)
        data['inline_query'] = InlineQuery.de_json(data.get('inline_query'), bot)
        data['chosen_inline_result'] = ChosenInlineResult.de_json(
            data.get('chosen_inline_result'), bot)
        data['callback_query'] = CallbackQuery.de_json(data.get('callback_query'), bot)
        data['shipping_query'] = ShippingQuery.de_json(data.get('shipping_query'), bot)
        data['pre_checkout_query'] = PreCheckoutQuery.de_json(data.get('pre_checkout_query'), bot)
        data['channel_post'] = Message.de_json(data.get('channel_post'), bot)
        data['edited_channel_post'] = Message.de_json(data.get('edited_channel_post'), bot)

        return cls(**data)
def get_false_update_fixture_decorator_params():
    message = Message(1,
                      DATE,
                      Chat(1, ""),
                      from_user=User(1, "", False),
                      text="test")
    params = [
        {
            "callback_query":
            CallbackQuery(1, User(1, "", False), "chat", message=message)
        },
        {
            "channel_post": message
        },
        {
            "edited_channel_post": message
        },
        {
            "inline_query": InlineQuery(1, User(1, "", False), "", "")
        },
        {
            "chosen_inline_result":
            ChosenInlineResult("id", User(1, "", False), "")
        },
        {
            "shipping_query": ShippingQuery("id", User(1, "", False), "", None)
        },
        {
            "pre_checkout_query":
            PreCheckoutQuery("id", User(1, "", False), "", 0, "")
        },
        {
            "callback_query": CallbackQuery(1, User(1, "", False), "chat")
        },
    ]
    ids = tuple(key for kwargs in params for key in kwargs)
    return {"params": params, "ids": ids}
import pytest

from telegram import (Update, CallbackQuery, Bot, Message, User, Chat, InlineQuery,
                      ChosenInlineResult, ShippingQuery, PreCheckoutQuery, Location)
from telegram.ext import InlineQueryHandler, CallbackContext, JobQueue

message = Message(1, User(1, '', False), None, Chat(1, ''), text='Text')

params = [
    {'message': message},
    {'edited_message': message},
    {'callback_query': CallbackQuery(1, User(1, '', False), 'chat', message=message)},
    {'channel_post': message},
    {'edited_channel_post': message},
    {'chosen_inline_result': ChosenInlineResult('id', User(1, '', False), '')},
    {'shipping_query': ShippingQuery('id', User(1, '', False), '', None)},
    {'pre_checkout_query': PreCheckoutQuery('id', User(1, '', False), '', 0, '')},
    {'callback_query': CallbackQuery(1, User(1, '', False), 'chat')}
]

ids = ('message', 'edited_message', 'callback_query', 'channel_post',
       'edited_channel_post', 'chosen_inline_result',
       'shipping_query', 'pre_checkout_query', 'callback_query_without_message')


@pytest.fixture(scope='class', params=params, ids=ids)
def false_update(request):
    return Update(update_id=2, **request.param)


@pytest.fixture(scope='function')
    {
        "callback_query":
        CallbackQuery(1, User(1, "", False), "chat", message=message)
    },
    {
        "channel_post": message
    },
    {
        "edited_channel_post": message
    },
    {
        "chosen_inline_result": ChosenInlineResult("id", User(1, "", False),
                                                   "")
    },
    {
        "shipping_query": ShippingQuery("id", User(1, "", False), "", None)
    },
    {
        "pre_checkout_query": PreCheckoutQuery("id", User(1, "", False), "", 0,
                                               "")
    },
    {
        "callback_query": CallbackQuery(1, User(1, "", False), "chat")
    },
]

ids = (
    "message",
    "edited_message",
    "callback_query",
    "channel_post",
    'message': message
}, {
    'edited_message': message
}, {
    'callback_query':
    CallbackQuery(1, User(1, ''), 'chat', message=message)
}, {
    'channel_post': message
}, {
    'edited_channel_post': message
}, {
    'inline_query': InlineQuery(1, User(1, ''), '', '')
}, {
    'chosen_inline_result': ChosenInlineResult('id', User(1, ''), '')
}, {
    'shipping_query': ShippingQuery('id', User(1, ''), '', None)
}, {
    'pre_checkout_query': PreCheckoutQuery('id', User(1, ''), '', 0, '')
}, {
    'callback_query': CallbackQuery(1, User(1, ''), 'chat')
}]

ids = ('message', 'edited_message', 'callback_query', 'channel_post',
       'edited_channel_post', 'inline_query', 'chosen_inline_result',
       'shipping_query', 'pre_checkout_query',
       'callback_query_without_message')


@pytest.fixture(scope='class', params=params, ids=ids)
def false_update(request):
    return Update(update_id=1, **request.param)