Exemplo n.º 1
0
def test_SendMessage():
    req = api.SendMessage(1000, "Hello, World!")
    assert req.render() == {'chat_id': 1000, 'text': 'Hello, World!'}
    assert req.render(with_method=True) == {
        'method': 'SendMessage',
        'chat_id': 1000,
        'text': 'Hello, World!'
    }
    assert req.files() == []

    kb = api.InlineKeyboardMarkup(
        [[api.InlineKeyboardButton('Button', callback_data='data')]])
    req = api.SendMessage(1000,
                          "Hello, World!",
                          parse_mode=api.ParseModeType.html,
                          disable_web_page_preview=True,
                          disable_notification=True,
                          reply_to_message_id=100,
                          reply_markup=kb)

    assert req.render() == {
        'chat_id': 1000,
        'text': 'Hello, World!',
        'disable_notification': True,
        'disable_web_page_preview': True,
        'parse_mode': 'html',
        'reply_to_message_id': 100,
        'reply_markup': {
            'inline_keyboard': [[{
                'callback_data': 'data',
                'text': 'Button'
            }]]
        }
    }
    assert req.files() == []
Exemplo n.º 2
0
def test_EditMessageLiveLocation():
    req = api.EditMessageLiveLocation(chat_id=1000,
                                      message_id=300,
                                      latitude=31.7767,
                                      longitude=35.2345)
    assert req.render() == {
        'chat_id': 1000,
        'message_id': 300,
        'latitude': 31.7767,
        'longitude': 35.2345
    }
    assert req.render(with_method=True) == {
        'method': 'EditMessageLiveLocation',
        'chat_id': 1000,
        'message_id': 300,
        'latitude': 31.7767,
        'longitude': 35.2345
    }
    assert req.files() == []

    req = api.EditMessageLiveLocation(
        inline_message_id='ABCDEFGHIJKLMNOPQRSTUVWXYZ',
        latitude=31.7767,
        longitude=35.2345)
    assert req.render() == {
        'inline_message_id': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
        'latitude': 31.7767,
        'longitude': 35.2345
    }
    assert req.render(with_method=True) == {
        'method': 'EditMessageLiveLocation',
        'inline_message_id': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
        'latitude': 31.7767,
        'longitude': 35.2345
    }
    assert req.files() == []

    kb = api.InlineKeyboardMarkup(
        [[api.InlineKeyboardButton('Button', callback_data='data')]])
    req = api.EditMessageLiveLocation(chat_id=1000,
                                      message_id=300,
                                      latitude=31.7767,
                                      longitude=35.2345,
                                      reply_markup=kb)

    assert req.render() == {
        'chat_id': 1000,
        'message_id': 300,
        'latitude': 31.7767,
        'longitude': 35.2345,
        'reply_markup': {
            'inline_keyboard': [[{
                'callback_data': 'data',
                'text': 'Button'
            }]]
        }
    }

    assert req.files() == []
Exemplo n.º 3
0
def test_SendVenue():
    req = api.SendVenue(1000,
                        latitude=31.7767,
                        longitude=35.2345,
                        title='Earth',
                        address='Solar system')
    assert req.render() == {
        'chat_id': 1000,
        'latitude': 31.7767,
        'longitude': 35.2345,
        'title': 'Earth',
        'address': 'Solar system'
    }
    assert req.render(with_method=True) == {
        'method': 'SendVenue',
        'chat_id': 1000,
        'latitude': 31.7767,
        'longitude': 35.2345,
        'title': 'Earth',
        'address': 'Solar system'
    }
    assert req.files() == []

    kb = api.InlineKeyboardMarkup(
        [[api.InlineKeyboardButton('Button', callback_data='data')]])
    req = api.SendVenue(1000,
                        latitude=31.7767,
                        longitude=35.2345,
                        title='Earth',
                        address='Solar system',
                        foursquare_id='ABCDE123',
                        foursquare_type='food/icecream',
                        disable_notification=True,
                        reply_to_message_id=100,
                        reply_markup=kb)

    assert req.render() == {
        'chat_id': 1000,
        'latitude': 31.7767,
        'longitude': 35.2345,
        'title': 'Earth',
        'address': 'Solar system',
        'foursquare_id': 'ABCDE123',
        'foursquare_type': 'food/icecream',
        'disable_notification': True,
        'reply_to_message_id': 100,
        'reply_markup': {
            'inline_keyboard': [[{
                'callback_data': 'data',
                'text': 'Button'
            }]]
        }
    }

    assert req.files() == []
Exemplo n.º 4
0
def test_SendVideo():
    req = api.SendVideo(1000, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
    assert req.render() == {
        'chat_id': 1000,
        'video': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    }
    assert req.render(with_method=True) == {
        'method': 'SendVideo',
        'chat_id': 1000,
        'video': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    }
    assert req.files() == []

    video_file = api.InputFile('video.mp4', 'video/mp4', BytesIO())
    thumb_file = api.InputFile('thumb.jpg', 'image/jpeg', BytesIO())

    kb = api.InlineKeyboardMarkup(
        [[api.InlineKeyboardButton('Button', callback_data='data')]])
    req = api.SendVideo(1000,
                        video_file,
                        duration=300,
                        width=640,
                        height=480,
                        supports_streaming=True,
                        thumb=thumb_file,
                        caption="Hello, World!",
                        parse_mode=api.ParseModeType.html,
                        disable_notification=True,
                        reply_to_message_id=100,
                        reply_markup=kb)

    assert req.render() == {
        'chat_id': 1000,
        'video': 'attach://video.mp4',
        'duration': 300,
        'width': 640,
        'height': 480,
        'supports_streaming': True,
        'thumb': 'attach://thumb.jpg',
        'caption': 'Hello, World!',
        'parse_mode': 'html',
        'disable_notification': True,
        'reply_to_message_id': 100,
        'reply_markup': {
            'inline_keyboard': [[{
                'callback_data': 'data',
                'text': 'Button'
            }]]
        }
    }

    assert req.files() == [video_file, thumb_file]
Exemplo n.º 5
0
def test_SendAudio():
    req = api.SendAudio(1000, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
    assert req.render() == {
        'chat_id': 1000,
        'audio': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    }
    assert req.render(with_method=True) == {
        'method': 'SendAudio',
        'chat_id': 1000,
        'audio': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    }
    assert req.files() == []

    audio_file = api.InputFile('audio.mp3', 'audio/mpeg', BytesIO())
    thumb_file = api.InputFile('thumb.jpg', 'image/jpeg', BytesIO())

    kb = api.InlineKeyboardMarkup(
        [[api.InlineKeyboardButton('Button', callback_data='data')]])
    req = api.SendAudio(1000,
                        audio_file,
                        duration=300,
                        performer="Beethoven",
                        title="Symphony No. 5",
                        thumb=thumb_file,
                        caption="Hello, World!",
                        parse_mode=api.ParseModeType.html,
                        disable_notification=True,
                        reply_to_message_id=100,
                        reply_markup=kb)

    assert req.render() == {
        'chat_id': 1000,
        'audio': 'attach://audio.mp3',
        'duration': 300,
        'performer': "Beethoven",
        'title': "Symphony No. 5",
        'thumb': 'attach://thumb.jpg',
        'caption': 'Hello, World!',
        'parse_mode': 'html',
        'disable_notification': True,
        'reply_to_message_id': 100,
        'reply_markup': {
            'inline_keyboard': [[{
                'callback_data': 'data',
                'text': 'Button'
            }]]
        }
    }

    assert req.files() == [audio_file, thumb_file]
Exemplo n.º 6
0
def test_SendContact():
    req = api.SendContact(1000, phone_number='+1234567890', first_name='John')
    assert req.render() == {
        'chat_id': 1000,
        'phone_number': '+1234567890',
        'first_name': 'John'
    }
    assert req.render(with_method=True) == {
        'method': 'SendContact',
        'chat_id': 1000,
        'phone_number': '+1234567890',
        'first_name': 'John'
    }
    assert req.files() == []

    vcard = "BEGIN:VCARD\nVERSION:4.0\nN:Gump;Forrest;;Mr.;\nFN:Forrest Gump\n" \
            "EMAIL:[email protected]\nEND:VCARD"

    kb = api.InlineKeyboardMarkup(
        [[api.InlineKeyboardButton('Button', callback_data='data')]])
    req = api.SendContact(1000,
                          phone_number='+1234567890',
                          first_name='Forrest',
                          last_name='Gump',
                          vcard=vcard,
                          disable_notification=True,
                          reply_to_message_id=100,
                          reply_markup=kb)

    assert req.render() == {
        'chat_id': 1000,
        'phone_number': '+1234567890',
        'first_name': 'Forrest',
        'last_name': 'Gump',
        'vcard': vcard,
        'disable_notification': True,
        'reply_to_message_id': 100,
        'reply_markup': {
            'inline_keyboard': [[{
                'callback_data': 'data',
                'text': 'Button'
            }]]
        }
    }

    assert req.files() == []
Exemplo n.º 7
0
def test_SendVideoNote():
    req = api.SendVideoNote(1000, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
    assert req.render() == {
        'chat_id': 1000,
        'video_note': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    }
    assert req.render(with_method=True) == {
        'method': 'SendVideoNote',
        'chat_id': 1000,
        'video_note': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    }
    assert req.files() == []

    note_file = api.InputFile('voice.opus', 'audio/ogg', BytesIO())
    thumb_file = api.InputFile('thumb.jpg', 'image/jpeg', BytesIO())

    kb = api.InlineKeyboardMarkup(
        [[api.InlineKeyboardButton('Button', callback_data='data')]])
    req = api.SendVideoNote(1000,
                            note_file,
                            duration=300,
                            length=500,
                            thumb=thumb_file,
                            disable_notification=True,
                            reply_to_message_id=100,
                            reply_markup=kb)

    assert req.render() == {
        'chat_id': 1000,
        'video_note': 'attach://voice.opus',
        'duration': 300,
        'length': 500,
        'thumb': 'attach://thumb.jpg',
        'disable_notification': True,
        'reply_to_message_id': 100,
        'reply_markup': {
            'inline_keyboard': [[{
                'callback_data': 'data',
                'text': 'Button'
            }]]
        }
    }

    assert req.files() == [note_file, thumb_file]
Exemplo n.º 8
0
def test_SendDocument():
    req = api.SendDocument(1000, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
    assert req.render() == {
        'chat_id': 1000,
        'document': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    }
    assert req.render(with_method=True) == {
        'method': 'SendDocument',
        'chat_id': 1000,
        'document': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    }
    assert req.files() == []

    document_file = api.InputFile('document.pdf', 'application/pdf', BytesIO())
    thumb_file = api.InputFile('thumb.jpg', 'image/jpeg', BytesIO())

    kb = api.InlineKeyboardMarkup(
        [[api.InlineKeyboardButton('Button', callback_data='data')]])
    req = api.SendDocument(1000,
                           document_file,
                           thumb=thumb_file,
                           caption="Hello, World!",
                           parse_mode=api.ParseModeType.html,
                           disable_notification=True,
                           reply_to_message_id=100,
                           reply_markup=kb)

    assert req.render() == {
        'chat_id': 1000,
        'document': 'attach://document.pdf',
        'thumb': 'attach://thumb.jpg',
        'caption': 'Hello, World!',
        'parse_mode': 'html',
        'disable_notification': True,
        'reply_to_message_id': 100,
        'reply_markup': {
            'inline_keyboard': [[{
                'callback_data': 'data',
                'text': 'Button'
            }]]
        }
    }

    assert req.files() == [document_file, thumb_file]
Exemplo n.º 9
0
def test_SendVoice():
    req = api.SendVoice(1000, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
    assert req.render() == {
        'chat_id': 1000,
        'voice': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    }
    assert req.render(with_method=True) == {
        'method': 'SendVoice',
        'chat_id': 1000,
        'voice': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    }
    assert req.files() == []

    voice_file = api.InputFile('voice.opus', 'audio/ogg', BytesIO())

    kb = api.InlineKeyboardMarkup(
        [[api.InlineKeyboardButton('Button', callback_data='data')]])
    req = api.SendVoice(1000,
                        voice_file,
                        duration=300,
                        caption="Hello, World!",
                        parse_mode=api.ParseModeType.html,
                        disable_notification=True,
                        reply_to_message_id=100,
                        reply_markup=kb)

    assert req.render() == {
        'chat_id': 1000,
        'voice': 'attach://voice.opus',
        'duration': 300,
        'caption': 'Hello, World!',
        'parse_mode': 'html',
        'disable_notification': True,
        'reply_to_message_id': 100,
        'reply_markup': {
            'inline_keyboard': [[{
                'callback_data': 'data',
                'text': 'Button'
            }]]
        }
    }

    assert req.files() == [voice_file]
Exemplo n.º 10
0
def test_SendLocation():
    req = api.SendLocation(1000, latitude=31.7767, longitude=35.2345)
    assert req.render() == {
        'chat_id': 1000,
        'latitude': 31.7767,
        'longitude': 35.2345
    }
    assert req.render(with_method=True) == {
        'method': 'SendLocation',
        'chat_id': 1000,
        'latitude': 31.7767,
        'longitude': 35.2345
    }
    assert req.files() == []

    kb = api.InlineKeyboardMarkup(
        [[api.InlineKeyboardButton('Button', callback_data='data')]])
    req = api.SendLocation(1000,
                           latitude=31.7767,
                           longitude=35.2345,
                           live_period=300,
                           disable_notification=True,
                           reply_to_message_id=100,
                           reply_markup=kb)

    assert req.render() == {
        'chat_id': 1000,
        'latitude': 31.7767,
        'longitude': 35.2345,
        'disable_notification': True,
        'live_period': 300,
        'reply_to_message_id': 100,
        'reply_markup': {
            'inline_keyboard': [[{
                'callback_data': 'data',
                'text': 'Button'
            }]]
        }
    }

    assert req.files() == []
Exemplo n.º 11
0
def test_SendPoll():
    req = api.SendPoll(1000, question='Do it?', options=['Yes', 'No'])
    assert req.render() == {
        'chat_id': 1000,
        'question': 'Do it?',
        'options': ['Yes', 'No']
    }
    assert req.render(with_method=True) == {
        'method': 'SendPoll',
        'chat_id': 1000,
        'question': 'Do it?',
        'options': ['Yes', 'No']
    }
    assert req.files() == []

    kb = api.InlineKeyboardMarkup(
        [[api.InlineKeyboardButton('Button', callback_data='data')]])
    req = api.SendPoll(1000,
                       question='Do it?',
                       options=['Yes', 'No'],
                       disable_notification=True,
                       reply_to_message_id=100,
                       reply_markup=kb)

    assert req.render() == {
        'chat_id': 1000,
        'question': 'Do it?',
        'options': ['Yes', 'No'],
        'disable_notification': True,
        'reply_to_message_id': 100,
        'reply_markup': {
            'inline_keyboard': [[{
                'callback_data': 'data',
                'text': 'Button'
            }]]
        }
    }

    assert req.files() == []
Exemplo n.º 12
0
def test_StopMessageLiveLocation():
    req = api.StopMessageLiveLocation(chat_id=1000, message_id=300)
    assert req.render() == {'chat_id': 1000, 'message_id': 300}
    assert req.render(with_method=True) == {
        'method': 'StopMessageLiveLocation',
        'chat_id': 1000,
        'message_id': 300
    }
    assert req.files() == []

    req = api.StopMessageLiveLocation(
        inline_message_id='ABCDEFGHIJKLMNOPQRSTUVWXYZ')
    assert req.render() == {'inline_message_id': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'}
    assert req.render(with_method=True) == {
        'method': 'StopMessageLiveLocation',
        'inline_message_id': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    }
    assert req.files() == []

    kb = api.InlineKeyboardMarkup(
        [[api.InlineKeyboardButton('Button', callback_data='data')]])
    req = api.StopMessageLiveLocation(chat_id=1000,
                                      message_id=300,
                                      reply_markup=kb)

    assert req.render() == {
        'chat_id': 1000,
        'message_id': 300,
        'reply_markup': {
            'inline_keyboard': [[{
                'callback_data': 'data',
                'text': 'Button'
            }]]
        }
    }

    assert req.files() == []